|
发表于 2023-12-22 16:22:58
|
显示全部楼层
首先,以下说法是正确的:
A. 子类对象可以调用重写的方法
子类继承超类的方法,如果在子类中重写了这些方法,那么子类对象可以直接调用重写后的方法。
然后,以下说法是错误的:
B. 超类对象可以调用重写的方法
超类对象只能调用超类中定义的方法,不能调用子类中重写的方法。
子类对象的类型与超类对象相同
子类对象和超类对象的类型是不同的,子类是超类的特殊类型,但超类不是子类的特殊类型。
最后,以下说法是部分正确的:
子类对象可以使用超类中的所有成员
子类对象可以使用超类中的非私有成员,包括字段和方法,但不能使用超类中的私有成员。
下面是一个简单的示例代码来演示子类对象的使用:
- // 定义超类Animal
- class Animal {
- protected String name;
-
- public void eat() {
- System.out.println("Animal is eating");
- }
- }
- // 定义子类Cat
- class Cat extends Animal {
- public void eat() {
- System.out.println("Cat is eating");
- }
-
- public void meow() {
- System.out.println("Cat is meowing");
- }
- }
- public class Example {
- public static void main(String[] args) {
- Animal animal = new Animal();
- Cat cat = new Cat();
-
- animal.eat(); // 输出: Animal is eating
- cat.eat(); // 输出: Cat is eating
-
- // animal.meow(); // 错误,animal对象没有meow()方法
-
- Animal catAsAnimal = new Cat();
- catAsAnimal.eat(); // 输出: Cat is eating
-
- // catAsAnimal.meow(); // 错误,catAsAnimal对象没有meow()方法
- }
- }
复制代码
希望通过这个例子可以帮助你理解子类对象的相关概念。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|