标签:Java 内部 author void 匿名 2020 smile 抽象类 public
匿名内部类顾名思义就是没有名字的内部类。一般用于只需要使用一次,很少被其他地方是使用的类。
第一种方式:抽象类
/** * @author suwan * @date 2020/1/15 */ public abstract class AbstractCat { abstract void smile(); }
直接将抽象类AbstractCat的方法实现。就可以省略一个写一个类来实现抽象类。
/** * @author suwan * @date 2020/1/15 */ public class Demo { public static void main(String[] args) { AbstractCat abstractCat=new AbstractCat() { @Override void smile() { System.out.println("抽象类。。。笑。。。"); } }; abstractCat.smile(); } }
输出:
抽象类。。。笑。。。
第二种方式:接口
/** * @author suwan * @date 2020/1/15 */ public interface Cat { void smile(); }
/** * @author suwan * @date 2020/1/15 */ public class Demo { public static void main(String[] args) { Cat cat = new Cat() { @Override public void smile() { System.out.println("接口。。。笑。。。"); } }; cat.smile(); } }
输出:
接口。。。笑。。。
总结:只要一个类是抽象类或者是一个接口,都可以使用一个匿名内部类来实现。
我们日常中最常见的使用匿名内部类的就是多线程的实现。使用Runnable的接口。
Runnable runnable=new Runnable() { @Override public void run() { } }
标签:Java,内部,author,void,匿名,2020,smile,抽象类,public 来源: https://www.cnblogs.com/suwan1125/p/12200777.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。