抽象方法和抽象类用abstract关键字修饰,有抽象方法的类一定是抽象类,抽象类不一定有抽象方法。

抽象类不能实例化,通过子类对象实例化,这叫抽象类多态。抽象类的子类要么重写所有抽象方法,要么就是抽象类。
抽象类有构造方法但是不能实例化,用于子类访问父类数据的初始化。
抽象类作为形参和返回值时,需要的时该抽象类的子类

1
2
3
4
5
6
7
8
9
10
Animal a=new Cat();
a.setAge(10);
a.setName("小黑");
a.eat();
Animal b=new Dog("小花",11);
Dog d=(Dog) b;
d.sport();
d.eat();
System.out.println(a.toString());
System.out.println(d.toString());