当前位置: 代码迷 >> J2SE >> 抽象类不是说不能实例化吗?为啥能这样写?这样不是实例化吗
  详细解决方案

抽象类不是说不能实例化吗?为啥能这样写?这样不是实例化吗

热度:139   发布时间:2016-04-23 19:52:04.0
抽象类不是说不能实例化吗?为什么能这样写?这样不是实例化吗 ?
抽象类不是说不能实例化吗?为什么能这样写?

public abstract class hello {
 public abstract void onclick();
}



public class obj {
public static void main(String [] args)
{
hello obj = new hello()
{
@Override
public void onclick(){
System.out.println("HELLO WORLD 123");
}
};
obj.onclick();
}
}

抽象类不是说不能实例化吗?为什么能这样写?这样不是实例化吗 ?
------解决思路----------------------
这个实例化了hello类的一个匿名子类。
new hello() 后面不是还有一对大括号,里面有抽象方法onclick的实现吗。
这其实相当于定义一个hello类的子类,实现了hello类的所有抽象方法,然后实例化。
  相关解决方案