2016-11-27 45 views
0

我已經看到了一些實例化新對象的引用,特別是在使用繼承時。創建左側和右側的類名不同的對象

Cat cat = new Animal(); 

但是,我不知道這個概念被稱爲什麼。所以,我無法閱讀它。

我有兩個問題。

  1. 這個概念叫什麼?
  2. 這怎麼可能,你可以用 保持/引用一個與它的原始類別不同的​​類型的對象?

回答

0

這裏玩的基本概念是繼承。一個很好的開始閱讀關於它是https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html

你的例子相反—應該

Animal animal = new Cat(); 

這是因爲Cat類將是一個特定類型的Animal —擁有一切,使一個Animal需要對象,加上一些額外的東西。

在代碼中,這將是這個樣子:

public class Test 
{ 
    public static class Animal 
    { 
     protected String sound; 
     public String getSound() { return sound; } 
     public Animal() { sound = ""; } 
    } 

    public static class Cat extends Animal 
    { 
     public Cat() { sound = "meow"; } 
    } 

    public static void main(String[] args) { 
     Animal animal = new Cat(); 
     System.out.println(animal.getSound()); 
    } 
} 

其結果將是

因爲貓對象具有從父動物的getSound()方法,但是使用它自己的構造函數創建並適當地設置了數據。

0
  1. 在面向對象的編程世界中,這個概念被稱爲繼承。
  2. 可以將孩子的對象分配給父母的引用。呃,也是技術人員,呃?所以採取這種方式,Cat是一種Animal,但反過來不一定是正確的。 因此,Animal可以是Cat,Dog或其他,因爲貓和狗確實具有動物的特性。這也被稱爲泛化和專業化。 Animal是廣義類別,但CatAnimal的專用類別。

互聯網上有很多可用的資源。查看並瞭解面向對象編程範例。祝你好運!