【发布时间】:2017-11-02 06:55:27
【问题描述】:
我试图理解 java 中的方法覆盖。 明白私有方法不能被覆盖。
public class Superclass
{
private String name;
Superclass(String name) {
this.name=name;
}
private void printName(String name) {
System.out.println("This is a Superclass output"+name);
}
}
public class Subclass extends Superclass
{
Subclass(String name) {
super(name);
}
public void printName(String name) {
System.out.println(name);
}
}
public static void main (String[] args) {
Superclass sb = new Subclass("Superclass");
//System.out.println(sb.getClass().getName());
sb.printName("this is super class variable");
}
我正在尝试执行这段 sn-p 代码
和输出:"This is a Superclass outputthis is super class variable"
请帮助我了解对象 sb 实际指的是哪个类。
当printName 在超类中公开时,我看到的输出是:
"this is super class variable"
还请帮助我理解为什么 sb 会根据修饰符 private 和 public 指向两个不同的类。
【问题讨论】:
标签: java inheritance