之前在类和对象中我们说到了类的普通特性,本篇将介绍类的一些高级特性。
一、抽象类
抽象类:抽象类是只声明方法的存在而不去具体实现它的类。抽象类不能被实例化,也就是不能创建其对象。使用abstract关键字定义抽象类,直接上例子。
下面是一个抽象类的定义,在class前直接加上abstract关键字。最后一句“public abstract void voice();”是一个抽象方法,没有实际意义,必须用子类重写。需要注意的是,抽象方法只有方法的声明,而没有方法的实现,与接口类似,但是用abstract关键字修饰的。对于抽象方法前的修饰,不能使用private或static关键字。
abstract class Animal { // 定义抽象类
public String animal; // 定义颜色成员变量
public Animal() { // 定义构造方法
animal="bird";
}
public abstract void voice(); // 定义抽象方法
}
接下来实现一下抽象方法。方法是在抽象类的子类中通过重写该方法实现抽象方法。
public class Dog extends Animal {
@Override
public void voice() {
System.out.println("woof...");
}
}
public class Cat extends Animal {
@Override
public void voice() {
System.out.println("nya...");
}
}