第一个问题:从逻辑上讲,假如一个抽象方法能定义成静态,那么通过类调用这个静态方法,这个方法没有方法体,那么调用它就没有意义,编译是通不过的。
第二个问题:抽象类不能实例化,但是在实例化它的子类对象时,还是会执行父类的无参构造方法,这个构造方法是有实体的,定义抽象非法!
abstract class A{
public A(){
System.out.println("抽象A建立");
}
public abstract void fun();
}
class B extends A{
@Override
public void fun() {
System.out.println("B...");
}
}
public class LuntanPicCopy {
public static void main(String[] args)
{
A a=new B();
a.fun();
}
} |