2011-05-02 69 views
34

什麼是java中的「子類」?什麼是子類

我知道類和方法,但我不知道子類。

+1

...什麼是Methos? – Mehrdad 2011-05-02 23:48:29

+1

我覺得薄荷糖? ... – 2011-05-02 23:58:31

+7

這真的是我們解釋什麼是子類和繼承的網站嗎?真? – 2011-05-03 00:00:24

回答

72

子類的子類是擴展另一個類的類。

public class BaseClass{ 
    public String getFoo(){ 
     return "foo"; 
    } 
} 

public class SubClass extends BaseClass{ 
} 

則...

System.out.println(new SubClass().getFoo()); 

會打印:

foo 

這工作,因爲一個子類繼承它擴展了類的功能。

+2

這在Java中稱爲繼承嗎? – 2011-05-02 23:58:04

+8

+1對於任何人都可以涉及的直接解釋。 – rzetterberg 2011-05-03 00:06:57

2

java中的一個子類是繼承自另一個類的類。

繼承是類的一種方式,在廣義行爲頂部添加專門的行爲。這通常由短語「是一種」關係來表示。

例如,TriangleShape,所以實現一個Shape類並讓Triangle類從它繼承是有意義的。在這個例子中,是ShapeTriangleTriangle超類是Shape

2

如果您具備以下條件:

public class A 
{ 
} 

public class B extends A 
{ 
} 

然後BAB繼承A一個子類。相反的是超類。

+0

公開課B:A意味着公共課B延伸A? – 2011-05-02 23:58:59

+0

是的,確切地說。我會調整。 – Femaref 2011-05-03 00:00:12

3

子類是以Class的形式給Java語言編程的。

3

這是一個擴展另一個類的類。從http://www.java-tips.org/java-se-tips/java.lang/what-is-a-java-subclass.html採取

例如,貓是一個子類動物的:-)

public class Animal { 

    public static void hide() { 
     System.out.println("The hide method in Animal."); 
    } 

    public void override() { 
     System.out.println("The override method in Animal."); 
    } 
} 

public class Cat extends Animal { 

    public static void hide() { 
     System.out.println("The hide method in Cat."); 
    } 

    public void override() { 
     System.out.println("The override method in Cat."); 
    } 

    public static void main(String[] args) { 
     Cat myCat = new Cat(); 
     Animal myAnimal = (Animal)myCat; 
     myAnimal.hide(); 
     myAnimal.override(); 
    } 
} 
9

子類的東西,擴展現有類的功能。即

超類 - 介紹對象的種類分:

public abstract class Fruit { 

    public abstract Color color; 

} 

Subclass1 - 介紹單果對象的屬性:

public class Apple extends Fruit { 

    Color color = red; 

} 

Subclass2 - 介紹單果對象的屬性:

public class Banana extends Fruit { 

    Color color = yellow; 

} 

超類中的'abstract'關鍵字意味着該類將只定義每個子類必須具有的必需信息即一塊水果必須具有一種顏色,以便它在超類中定義,並且所有子類都必須「繼承」該屬性並定義描述該特定對象的值。

這有道理嗎?

+0

紅蘋果?哈哈 – 2017-08-30 13:33:36

2

把一個類想象成一組事物的成員的描述。該集合中的所有成員都有共同的特徵(方法和屬性)。

子類是描述原始集合的特定子集的成員的類。它們共享主類的許多特徵,但可能具有子類成員特有的屬性或方法。

您聲明一個類是另一個類的子類,通過Java中的「extends」關鍵字。

public class B extends A 
{ 
... 
} 

B是B類A.實例的一個子類會自動顯示出許多相同的性質的作爲類A的實例

這是繼承的面向對象的程序設計的主要概念。

+0

所以抽象類必須至少包含每個子類必須具有的強制性信息?包括方法?但是,也可以包含自己的信息和方法,我不是有義務使用(但仍然是一種選擇)? – 2011-05-03 00:19:03

+0

我不認爲抽象類特別需要任何屬性。有時只是一個類從一個抽象類繼承的事實就是你想要的。 (請參閱「多態性」) – bpanulla 2011-05-03 00:35:37

0

子類是程序的一個小文件,從其他類延伸出來。例如,您可以製作一般的汽車課程,並具有適用於所有汽車的基本信息,這些基本信息適用於您的構造器和材料,然後您將有一門課程延伸到更具體的汽車或汽車系列,這些汽車將會有新的變量/方法。我看到你已經有很多來自上面的代碼的例子了,但我希望這個描述能夠幫助你。

+0

雖然它不一定必須是自己的文件。 – 2016-11-24 13:37:12