java – 抽象类和匿名类
发布时间:2020-12-15 04:54:13 所属栏目:Java 来源:网络整理
导读:参见英文答案 Creating the instance of abstract class or anonymous class????????????????????????????????????8个 abstract class Two { Two() { System.out.println("Two()"); } Two(String s) { System.out.println("Two(String"); } abstract int dis
参见英文答案 >
Creating the instance of abstract class or anonymous class????????????????????????????????????8个
abstract class Two { Two() { System.out.println("Two()"); } Two(String s) { System.out.println("Two(String"); } abstract int display(); } class One { public Two two(String s) { return new Two() { public int display() { System.out.println("display()"); return 1; } }; } } class Ajay { public static void main(String ...strings ){ One one=new One(); Two two=one.two("ajay"); System.out.println(two.display()); } } 我们无法实例化一个抽象类,那么为什么函数二二(String s)能够创建一个抽象类的实例Two ???? 解决方法
它不会创建抽象二的实例.它创建了一个具体的匿名类,它扩展了Two并实例化它.
它几乎相当于使用这样的命名内部类: class One { public Two two(String s) { return new MyTwo(); } class MyTwo extends Two { public int display() { System.out.println("display()"); return 1; } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |