抽象类:包含抽象方法的类抽象类
1、抽象类不能进行实例化
2、在抽象类当中,可以拥有和普通类一样的数据成员和方法
3、抽象类是可以被继承的,可以发生向上转型。
4、当一个普通类继承了一个抽象类,那么注意,当前这个普通类,一定要重写抽象类当中的抽象方法。
5、当普通类A继承了抽象类,且不想实现抽象类当中的抽象方法的时候
那么这个普通类可以被修改为抽象类A,此时就不需要进行实现了,当然你也可以实现。
如果一个普通类B,继承了这个抽象类A,此时就要实现这个抽象方法了
6、抽象方法不能是private修饰的,因为抽象方法就是用来被重写的
7、抽象类的出现 其实最大的意义就是为了被继承。
抽象方法:abstract修饰方法,会使这个方法变成抽象方法,抽象方法没有方法体(没有{})实现部分以";"代替。需要子类继承实现。
abstract class Shape{
sbatract public void draw();
}
抽象类和接口都是 Java 中多态的常见使用方式. 都需要重点掌握. 同时又要认清两者的区别。
核心区别: 抽象类中可以包含普通方法和普通字段, 这样的普通方法和字段可以被子类直接使用(不必重写), 而接口中不能包含普通方法, 子类必须重写所有的抽象方法.
如之前写的 Animal 例子. 此处的 Animal 中包含一个 name 这样的属性, 这个属性在任何子类中都是存在的. 因此此处的 Animal 只能作为一个抽象类, 而不应该成为一个接口。
```java
class Animal {
protected String name;
public Animal(String name) {
this.name = name;
}
}