多态不能使用子类独有方法
时间: 2024-03-30 08:15:47 浏览: 15
这个说法是不准确的。多态指的是同一个方法可以根据不同的对象调用不同的实现。在使用多态时,如果子类中有独有的方法,只要该对象的类型是该子类,就可以通过该对象调用该独有方法。例如:
```java
public class Animal {
public void move() {
System.out.println("Animal is moving");
}
}
public class Dog extends Animal {
public void move() {
System.out.println("Dog is moving");
}
public void bark() {
System.out.println("Dog is barking");
}
}
public class Main {
public static void main(String[] args) {
Animal animal1 = new Animal();
Animal animal2 = new Dog();
Dog dog = new Dog();
animal1.move(); // output: Animal is moving
animal2.move(); // output: Dog is moving
dog.move(); // output: Dog is moving
//animal2.bark(); // compile error: The method bark() is undefined for the type Animal
dog.bark(); // output: Dog is barking
}
}
```
在上面的例子中,使用多态的方式可以调用子类 `Dog` 中重写的 `move` 方法。同时,如果对象的类型是 `Dog`,就可以通过该对象调用 `Dog` 中独有的 `bark` 方法。