请帮助我理解继承是如何工作的.
如果我有两个班,父母和孩子.当我创建一个子实例时,是否构造了父类实例?
我的Parent班级代码.
public class Parent {
private char s;
@Override
public int hashCode() {
return s;
}
}
Run Code Online (Sandbox Code Playgroud)
和 Child
public class Child extends Parent {
private int i;
public Child(int i) {
super();
this.i = i;
}
@Override
public int hashCode() {
return i;
}
}
Run Code Online (Sandbox Code Playgroud)
最后是测试
public class Main {
public static void main(String[] args) {
Child child = new Child(100);
System.out.println(child.hashCode());
System.out.println(child.getClass().getSuperclass().hashCode());
}
}
Run Code Online (Sandbox Code Playgroud)
在输出中,我得到
100
2000502626
Run Code Online (Sandbox Code Playgroud)
所以对象的哈希是不同的.这意味着当我创建Child它的实例时也会创建它的实例Parent.我对吗?
Ken*_*ent 10
你的问题与继承无关.
在100你得到child实例的hashcode()方法,如你预期.
该2000502626是从Parent.class,没有Parent object.
Parent.class 有类型 java.lang.Class
parent object 有类型 Parent
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |