首先,以下说法是正确的:
A. 子类对象可以调用重写的方法
子类继承超类的方法,如果在子类中重写了这些方法,那么子类对象可以直接调用重写后的方法。
然后,以下说法是错误的:
B. 超类对象可以调用重写的方法
超类对象只能调用超类中定义的方法,不能调用子类中重写的方法。
子类对象的类型与超类对象相同
子类对象和超类对象的类型是不同的,子类是超类的特殊类型,但超类不是子类的特殊类型。
最后,以下说法是部分正确的:
子类对象可以使用超类中的所有成员
子类对象可以使用超类中的非私有成员,包括字段和方法,但不能使用超类中的私有成员。
下面是一个简单的示例代码来演示子类对象的使用:// 定义超类Animalclass Animal { protected String name; public void eat() { System.out.println("Animal is eating"); }}// 定义子类Catclass 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 小助理,如未能正确解答您的问题,请继续追问。 |