编程那点事编程那点事

专注编程入门及提高
探究程序员职业规划之道!

抽象类

当定义一个类时,常常需要定义一些方法来描述该类的行为特征,但有时这些方法的实现方式是无法确定的。例如前面在定义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();
    }
}

运行结果:

汪汪汪汪

从运行结果可以看出,子类实现了父类的抽象方法后,可以正常进行实例化,并通过实例化对象调用方法。

未经允许不得转载: 技术文章 » Java编程 » 抽象类