1.抽象类
在了解抽象类之前,我们先了解一下抽象方法。
抽象方法是一种特殊的方法:它只有生命,而没有具体的实现。
抽象方法的声明格式为:
abstract void eat();
抽象方法必须用abstract关键字进行修饰。
如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前面用abstract关键字修饰。因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。
public abstract class Animal {
abstract void eat();
}
抽象类是为了继承而存在的,如果定义了一个抽象类,却不去继承它,那么等于白白创建了这个抽象类,因为你不能用它来做任何事情。
对于一个父类,如果它的某个方法在父类中实现出来没有任何意义,必须根据子类的实际需求来进行不同的实现,那么就可以将这个方法声明为abstract方法,此时这个类也就成为abstract类了。、
包含抽象方法的类成为抽象类,但并不意味着抽象类中只能有抽象方法,它和普通类一样,同样可以拥有成员变量和普通的成员方法。注意,抽象类和普通类主要有三点区别:
- 抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),默认情况下默认为public
- 抽象类不能用来创建对象