Java的继承与多态
Java是一种面向对象的编程语言,继承与多态是其重要的特性之一。通过继承,我们可以在现有类的基础上创建新的类,并且可以复用已有类的属性和方法。
在Java中,继承使用关键字“extends”。子类继承父类后,可以直接访问父类中的非私有属性和方法,并且可以通过覆盖父类的方法来实现自定义行为。
下面是一个简单的例子,展示了如何使用继承:
class Animal {
public void sound() {
System.out.println("动物发出声音");
}
}
class Dog extends Animal {
public void sound() {
System.out.println("狗发出汪汪声");
}
}
public class Main {
public static void main(String[] args) {
Dog dog = new Dog();
dog.sound(); // 输出:狗发出汪汪声
}
}
在上面的例子中,Dog类继承了Animal类,并覆盖了其sound()方法。在main()方法中,我们创建了一个Dog对象,并调用了其sound()方法,输出了“狗发出汪汪声”。
除了继承,多态也是Java中的重要概念。多态允许将父类对象赋给子类引用变量,通过子类引用变量可以调用子类特有的方法,并且通过父类引用变量可以调用子类覆盖的父类方法。
下面是一个示例,展示了多态的使用:
class Animal {
public void sound() {
System.out.println("动物发出声音");
}
}
class Dog extends Animal {
public void sound() {
System.out.println("狗发出汪汪声");
}
public void fetch() {
System.out.println("狗在玩球");
}
}
public class Main {
public static void main(String[] args) {
Animal animal = new Dog();
animal.sound(); // 输出:狗发出汪汪声
Dog dog = (Dog) animal;
dog.fetch(); // 输出:狗在玩球
}
}
在上面的例子中,我们创建了一个Animal类型的引用变量animal,并实例化为Dog对象。通过animal引用变量,我们调用了sound()方法,输出了“狗发出汪汪声”。
接着,我们将animal引用变量转换为Dog类型,并赋给了dog引用变量。通过dog引用变量,我们调用了fetch()方法,输出了“狗在玩球”。
继承与多态使得Java具有更强大的灵活性和扩展性。通过继承,我们可以构建复杂的类层次结构,通过多态,我们可以通过父类引用变量来处理不同的子类对象。这些特性是Java作为一种面向对象编程语言的关键特性之一。