Java中,这样算不算对抽象类进行创建对象实例化
问题描述:
abstract class Inter {
public abstract void print();
public abstract void run();
}
class Nonym {
public static void main(String...args) {
Inter i = new Inter() {
public void print() {
System.out.println("good");
}
public void run() {
System.out.println("run");
}
};
i.print();
i.run();
}
}
答
实际上你是创建了Inter的子类,父类的类型指向了子类的实例,这事允许的。
答
抽象类智能继承不能直接new
答
这种写法是创建了一个Inter的匿名子类对象,抽象类不能创建对象
答
你这个不是实例化,只是实现的抽象类的方法。 如果你把方法去掉,单独去NEW一个看看哈。
答
实际上你是创建了Inter的子类
答
你这个是新建了一个类,名字一样而已。
答
这样相当于创建了一个继承自Inter的子类的实例
答
你这种写法是创建了一个匿名内部类,实质是对抽象类创建了一个没有名字的子类,并重写了父类的方法,也就是说是对抽象类的子类对象创建了一个实例,不能算是对抽象类创建对象实例化