Wil*_*Boy 5 java extends super keyword
简单的问题.我创建了一个名为Tester1的类,它扩展了另一个名为Tester2的类.Tester2包含一个名为"ABC"的公共字符串.
这是Tester1:
public class Tester1 extends Tester2
{
public Tester1()
{
ABC = "Hello";
}
}
Run Code Online (Sandbox Code Playgroud)
如果我改为将第5行更改为
super.ABC = "Hello";
Run Code Online (Sandbox Code Playgroud)
我还在做同样的事吗?
是.您的对象中只有一个ABC变量.但请不要首先公开领域.字段应该总是私有的.
如果你声明的变量ABC之内Tester1为好,那么有会是一个差异-在该领域Tester1将隐藏在该领域Tester2,但使用super你还是会内指的是外地Tester2.但是不要这样做 - 隐藏变量是一种让代码无法维护的快速方法.
示例代码:
// Please don't write code like this. It's horrible.
class Super {
public int x;
}
class Sub extends Super {
public int x;
public Sub() {
x = 10;
super.x = 5;
}
}
public class Test {
public static void main(String[] args) {
Sub sub = new Sub();
Super sup = sub;
System.out.println(sub.x); // Prints 10
System.out.println(sup.x); // Prints 5
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4682 次 |
| 最近记录: |