class A
{
class B b;
B b = new b();
}
class B extends A
{
b.function();
}
這裏可以使用與A中創建的相同對象嗎?在Java中,在超類中創建的某些類的對象是否可用於子類
class A
{
class B b;
B b = new b();
}
class B extends A
{
b.function();
}
這裏可以使用與A中創建的相同對象嗎?在Java中,在超類中創建的某些類的對象是否可用於子類
以下是你的程序:
class C {
public String cvariable;
public void cfunction(){
System.out.println("string");
}
}
class A {
public C c1;
public void funtiona(){
c1 = new C();
}
}
public class B extends A {
public void functionb(){
c1.cfunction();
}
public static void main(String args[]){
B b = new B();
b.functionb();
}
}
它是正確拋出空指針異常。其步驟如下:
functionb()
functionb()
你叫cfunction()
與C1,C1,但僅僅是C型的變量(如尚未初始化),其中包含空值。所以得到空指針異常。請參見下面的程序,它會拋出java.lang.StackOverflowError
class B{
A a = new A();
public B(){
System.out.println(a.hashCode());
}
}
public class A extends B{
public void show(){
a.hashCode();
}
public static void main(String[] args){
new A().show();
}
}
這是因爲程序進了死循環,在創建一個子類對象調用父類的構造,並在父類前散列碼再次調用子類的構造函數。所以一個無限循環
你爲什麼不嘗試它,讓我們知道? ;):) :) –
嘗試一下.......... –
(編寫有效的Java幫助。另外,[閱讀現有的介紹](https://docs.oracle.com/javase/tutorial/java /IandI/subclasses.html))。 – user2864740