抽象
抽象类特点
*使用关键字abstract申明一个抽象类,该关键字可以出现在出现类申明时class关键字前的任何地方。如果一个类里面定义抽象方法,当前类必须是抽象类
*在抽象类里面也可以定义普通方法
*抽象方法必须用abstract来修饰
*一个抽象类去继承另外一个抽象类,抽象方法可以不重写
*抽象类不能直接实例化,可以通过多态(父类引用子类)进行实例化
public abstract class Animal{
public abstract void eat()
public void show(){
}
}
public abstract class Dog extends Animal{
}
抽象类与普通类的区别:
-抽象类可以有抽象方法,也可以由普通方法,而普通类只能有普通方法
-使用场景不同,抽象类的使用场景:
在某些场景下,父类只知道子类包含哪些行为,但是不知道行为的具体实现是什么样,这个时候就应该使用抽象类
从多个类中抽象一个父类出来,利用这个父类作为子类的模板,从未避免子类的随意设计
子类继承父类,如果父类里面有抽象方法,必须重写父类的抽象方法(规范子类行为)*
父类成员方法(非抽象方法)可以重写,可以不重写