2013-04-12 99 views
-7

我懷疑我們可以創建和引用一個類的對象並將其分配給它的子類。如果是這樣,我們可以使用創建該對象的子類方法嗎?超級方法的可訪問性

這裏是例子:

class Super_Class 
{ 
} 

class Sub_Class extends Super_Class 
{ 
} 

public class test 
{ 
    public static void main(String a[]) 
    { 
     Super_Class obj; 
     obj= new Sub_Class; 
    } 
} 

什麼方法訪問,我的意思是哪一類方法可以訪問?

回答

3

將一種類型的對象分配給另一種類型的引用的經驗法則是「isA」測試。如果您的超類是Fruit,而子類是Banana,則可以指定:Fruit obj = new Banana()如果Banana是A Fruit

我建議你對Java中的繼承和類型系統有一個很好的理解。

0

你在找什麼叫多態,這是目標對象的編程

您可以通過使用一個界面做的主要部分爲主。

例如,

public interface myInterface { 
    public void test(); 
    public int getInt(); 
} 

public class Super_Class { 
    public void test() { 
//code here 
    } 
} 

public class Sub_Class extends Super_Class implements myInterface{ 

public int getInt() { 
    return 0; 
    } 
} 

這意味着只要他們在接口的定義,你可以使用它像這樣

public static void main(String[] args) { 
myInterface subClass = (myInterface) Sub_Class; 
} 

您現在可以訪問兩個類中的方法。

請參閱維基百科頁面here