抽象类的基本概念
在类与对象里,对象都是通过类来描述的。
在有些时候一个类没有足够的信息来描述一个具体的对象,而需要其他具体的类来支撑它,那么这样的类我们称它为抽象类。
比如我们需要一个动物对象,但是我们只知道它是动物没有具体的描述,所以他是抽象类。这时候我们就需要一个具体的猫,狗的描述才知道它长什么样子。
注意事项
- 抽象类不能被实例化,实例化的工作应该交由它的子类来完成,它只需要有一个引用即可。
- 抽象方法必须由子类来进行重写。
- 只要包含一个抽象方法的抽象类,该方法必须要定义成抽象类,不管是否还包含有其他方法。
- 抽象类中可以包含具体的方法,当然也可以不包含抽象方法。
- 子类中的抽象方法不能与父类的抽象方法同名。
- abstract不能与final并列修饰同一个类。
- abstract 不能与private、static、final或native并列修饰同一个方法。
范例:定义一个抽象类
abstract class Aninal(){
//定义抽象方法,用abstract关键字修饰
abstract void eat();
abstract void play();
}
抽象类的使用
abstract class Aninal(){
//定义抽象方法,用abstract关键字修饰
public abstract void eat();
public abstract void play();
}
class Cat extends Aninal{
public void eat(){
System.out.println("吃猫粮");
}
}