2015-05-06 21 views
1

我有一個Java相關的問題。用父類和子類聲明一個新對象的方法之一

我有一個公共類Parent和它的子類public class Child extends Parent。

如果我要宣佈一個新的對象作爲

Parent p = new Child(); 

p能夠使用兒童與家長的方法是什麼?還是隻有父?

此外,這將是在宣佈差異p作爲

Child p = new Child(); 

如果孩子已經延伸家長嗎?

+1

我認爲你需要閱讀更多關於繼承在java中,請看看這個https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html – Ajit

+1

我不想破壞你的通過告訴你答案的樂趣。所有你需要做的就是爲'Parent'和'Child'編寫一些方法,看看你可以在'p'上調用哪些方法。 –

回答

1

這要看情況。

把它想象成電視遙控器和特定品牌的電視機。

父類是較舊的三星模型。孩子班是更新的三星模型(可以做更多的事情!)。

如果你這樣做Parent p = new Child();你是說你想在新的三星機型上使用舊款三星機型的遙控器。你當然可以這樣做,但你不會有所有的按鈕來使用Child類的所有新功能。聲明像這樣,p只能訪問Parent方法。

但是,如果你做Child p = new Child();,那麼你已經買了一個全新的遙控器去與你的新電視 - 現在你可以使用你的電視的所有功能。 p現在可以訪問ParentChild方法。

+0

謝謝,這個比喻澄清了很多。我問了我的老師,但用文字描述來形象化答案要容易得多。 – MattIK

+0

@Mattik沒有問題 - 這就是我們在這裏..種。 – Aify

0

Java繼承

class Parent 
{ 
    public void p1() 
    { 
     System.out.println("Parent method"); 
    } 
} 
public class Child extends Parent { 
    public void c1() 
    { 
     System.out.println("Child method"); 
    } 
    public static void main(String[] args) 
    { 
     Child cobj = new Child(); 
     cobj.c1(); //method of Child class 
     cobj.p1(); //method of Parent class 
    } 
} 

輸出

Child method 
Parent method 
+0

你提到的是正確的。但他提到的問題是真實的引用轉換..子類對象超級類引用... – Madhuri

相關問題