抽象类可以理解为看不懂的类
抽象类的特点
抽象类和抽象方法必须用abstract关键字修饰
(abstract class 类名 { })
public abstract void eat();
抽象类不一定有抽象方法,有抽象方法的类一定是个抽象类或者是接口
抽象类不能实例化,(就是不能new)那么如何进行抽象类实例化?
由具体的子类实例化。其实这也是多态的一种,抽象类多态
抽象类的子类(要么是抽象类,要么重写抽象类中的所有抽象方法)
抽象类成员的特点
成员变量:既可以是变量,也可以是常量
abstract不能修饰成员变量(属性),只能修饰类和方法
构造方法:抽象类也是有构造方法的,用于子类访问父类数据的初始化
成员方法:抽象类的方法可以是抽象的,也可以是非抽象的
package lesson01;
public class demo01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//葵花宝典(更好的理解抽象类)
葵花宝典 yue = new 岳不群();
yue.自宫();
}
}
abstract class 葵花宝典{
public void 自宫() {
}
}
class 岳不群 extends 葵花宝典{
public void 自宫() {
System.out.println("用剑。。");
}
}
class 林平之 extends 葵花宝典{
public void 自宫() {
System.out.println("用刀。。。");
}
}