版权声明:本文为博主原创文章,未经博主允许不得转载 https://blog.csdn.net/qq_24644517/article/details/82804766
/*
* 抽象类的特点:
* a:抽象类和抽象方法必须用abstract关键字修饰
* abstract class 类名{}
* public abstract void 方法名();
* b:抽象类不一定有抽象方法,有抽象方法的类一定是抽象类或者是接口
* c:抽象类不能被实例化的,那么抽象类如何实例化呢?
* 按照多态的方式,由具体的子类实例化,其实这也是多态的一种,抽象类多态
* d:抽象类的子类
* 要么是抽象类
* 要么重写抽象类中的所有抽象方法
* */
public class Demo1_Abstarct {
public static void main(String[]args){
Ainmalone a=new Cat();//父类引用指向子类对象
a.eat();//多态成员方法,编译看左边,运行看右边
}
}
abstract class Ainmalone{//抽象类
public abstract void eat();//抽象方法
}
class Cat extends Ainmalone{
public void eat(){//重写抽象类中所有的抽象方法
System.out.println("猫吃鱼");
}
}
abstract class Cat1 extends Ainmalone{//1.Cat1类是抽象类
// 2.如果不加abstract,会提示Cat1不是抽象的, 并且未覆盖Ainmalone中的抽象方法eat()
}