gpt4 book ai didi

java - 如果我用Superclass来初始化一个子类对象,为什么这个对象有子类的属性却有父类的方法呢?

转载 作者:行者123 更新时间:2023-12-05 07:35:39 24 4
gpt4 key购买 nike

我想弄明白为什么会这样,下面现象的优势有什么用:我用Superclass初始化了一个子类对象,为什么这个对象会有子类的属性,但是有子类的方法父类(super class)?

查看代码以了解我的真正意思:

class SuperClass {
public String s = "'This is the superclass'";
public String method() {
return s;
}
}
class SubClass extends SuperClass {
public String s = "'This is the subclass'";
public String method() {
return s;
}
}

public class SubClassTest {
public static void main(String[] args) {
SuperClass sc = new SuperClass();
System.out.println("Superclass s: " + sc.s + " bzw. method: " + sc.method());
SubClass subc = new SubClass();
System.out.println("SubClass s: " + subc.s + " bzw. method: " + subc.method());
SuperClass x = subc;
System.out.println("x s: " + x.s + " bzw. method: " + x.method());
}
}

输出如下:

Superclass s:  'This is the superclass' bzw. method: 'This is the superclass'
SubClass s: 'This is the subclass' bzw. method: 'This is the subclass'
x s: 'This is the superclass' bzw. method: 'This is the subclass'

最佳答案

正如 Ramkumar 所说的那样 link可能对你有帮助

你不能覆盖已经定义的类的结构,你可以覆盖行为。类的变量本质上不是多态的。

关于java - 如果我用Superclass来初始化一个子类对象,为什么这个对象有子类的属性却有父类的方法呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49399415/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com