有时候,我们要重用一组字段和方法,可以将左右公共成员放在一个特殊的基类中,然后声明访问这些成员的子类。
/**
* 抽象类:
* 1、什么是抽象类?
* 类和类之间具有共同特征,将这些共同特征提取出来,形成的就是抽象类
* 类本身是不存在的,所以抽象类无法创建对象(无法实例化)
*
* 2、抽象类属于什么类型?
* 抽象类也属于引用数据类型
*
* 3、抽象类怎么定义?
* 【修饰符列表】 abstract class 类名{
* 类体;
* }
*
* 4、抽象类是无法实例化的,无法创建对象的,所以是用来被子类继承的
*
* 5、final和 abstract不能联合使用,这两个关键字是对立的
*
* 6、抽象类的子类还可以是抽象类
*
* 7、抽象类可以有构造方法,这些构造方法是供子类使用的
*/
/**
* 抽象类的继承和多态
*
*/
public class Test02 {
public static void main(String[] args){
Great get = new Great();
get.People();
Chinese c = new Great();
c.People();
get.Fighter();
c.Fighter();
}
}
abstract class Chinese{
public abstract void People();
public void Fighter(){
System.out.println("Fighter");
}
}
class Great extends Chinese {
public void People() {
System.out.println("must get together");
}
}
abstract class Human{
public abstract void People2();
public void Fighter(){
System.out.println("Fighter2");
}
}