本文共 1016 字,大约阅读时间需要 3 分钟。
当定义一个类时,常常需要定义一些方法来描述该类的行为特征,但有时这些方法的实现方式是无法确定的。例如前面在定义Animal类时,shout()方法用于表示动物的叫声,但是针对不同的动物,叫声也是不同的,因此在shout()方法中无法准确描述动物的叫声。
针对上面描述的情况,Java允许在定义方法时不写方法体,不包含方法体的方法为抽象方法,抽象方法必须使用abstract关键字来修饰,具体示例如下:abstract void shout(); //定义抽象方法shout()
当一个类中包含了抽象方法,该类必须使用abstract关键字来修饰,使用abstract关键字修饰的类为抽象类,具体示例如下:abstract void shout(); //定义抽象方法shout()
当一个类中包含了抽象方法,该类必须使用abstract关键字来修饰,使用abstract关键字修饰的类为抽象类,具体示例如下://定义抽象类Animal
abstract class Animal {
//定义抽象方法shout()
abstract int shout();
}
在定义抽象类时需要注意,包含抽象方法的类必须声明为抽象类,但抽象类可以不包含任何抽象方法,只需使用abstract关键字来修饰即可。另外,抽象类是不可以被实例化的,因为抽象类中有可能包含抽象方法,抽象方法是没有方法体的,不可以被调用。如果想调用抽象类中定义的方法,则需要创建一个子类,在子类中将抽象类中的抽象方法进行实现。接下来通过一个案例来学习如何实现抽象类中的方法。// 定义抽象类animal
abstract class Animal {
// 定义抽象方法shout
abstract void shout();
}
// 定义dog类继承抽象方法Animal
class Dog extends Animal {
// 实现抽象方法shout
void shout() {
System.out.println("汪汪汪汪");
}
}
public class Example {
public static void main(String[] args) {
Dog dog = new Dog();
dog.shout();
}
}
运行结果:汪汪汪汪
从运行结果可以看出,子类实现了父类的抽象方法后,可以正常进行实例化,并通过实例化对象调用方法。
转载地址:http://ujyzo.baihongyu.com/