public class DemoAbstract {
public static void main(String[] args) {
new Dog().run();
//new Cat().run();抽象方法不能执行,因为没有方法体,所以抽象类不能创建对象
//new Cat().test();错的,抽象意味着不能实例化
}
}
abstract class Animal{
//子类要完成这个功能,但是由自己重写完成
//抽象方法,没有方法体,只有方法签名,必须用abstract修饰
//拥有抽象方法的类必须定义成抽象类
public abstract void run();//run()方法签名
}
class Dog extends Animal{
@Override
public void run() {
System.out.println("Dog");
}
}
abstract class Cat extends Animal{
public abstract void run();
public void test(){}
}