当前位置: 代码迷 >> J2SE >> 关于接口与抽象类的一些看法与讨论,该如何处理
  详细解决方案

关于接口与抽象类的一些看法与讨论,该如何处理

热度:99   发布时间:2016-04-24 02:10:39.0
关于接口与抽象类的一些看法与讨论
大部分的书上都说,接口与抽象类无法创建自己的实例,必须依靠继承或者实现的子类来创建实例,其实这种说法并不是很严谨,对于接口与抽象类,只要在创建其实例的同时,重写其抽象方法,便可建立其实例。请大家谈一下看法,也请大牛给解释一下。这是我下午做的实验,编译没问题,完美通过。
Java code
public abstract class Atest {    String name;    public Atest(String name){        this.name = name;    }    abstract void play();}public interface TestInterface {    void play();}public class Test1 {    Atest t = new Atest("ns"){        @Override        void play() {            // TODO Auto-generated method stub            System.out.println("hello");                    }                };                        TestInterface s = new TestInterface() {                                @Override                public void play() {                    System.out.println("hello");                                    }            };            }


------解决方案--------------------
你的那种写法是匿名内部类。


相当于,创建一个实现了这个接口的匿名类的对象。

和在一起怕你看不懂

分开说。

你创建了一个对象,这个对象是一个匿名类的对象。

这个匿名类实现了这个接口(或抽象类)的 方法。

而与你说的抽象类和接口能实例化对象不是一回事。

你可以查查匿名内部类

  相关解决方案