加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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;
        }
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读