A a=new B();
這個a和A B分別有什麼關系呢?到底是B的對象還是A的對象呢? 如果是B的對象,
a和A又有什麼關系呢? 為什麼不直接寫成 B a= new B()呢?
本人初學者,想請教一下各位,謝謝了!
這個問題比較難,你沒什麼基礎,所以說術語你聽不懂。我就說簡單點:
A a = new B(); 這個裡面涉及到3個東西,就是你問的A a B。
首先A B,這個東西叫做類,比如說,A類,B類,人類,你看,這個A B 其實和 人一樣的。既然一樣,我就拿人來說。
人,分為男人類,女人類。那這個男人類其實就是人類的一個更細致的劃分,我說人包含了男人類,這話沒毛病。
如果你說男人類 包含人類,這話就有毛病了。但是我說到現在都是抽象的,就是都是概念性的東西,
但是你(假設你叫張三並且是個漢子)。你屬於 男人類,你是一個具體的東西,是由抽象的東西(男人類)而來的。
A a = new B();
等價於
人 張三 = new 男人();
翻譯過來就是,你張三是男人,屬於人,你問 A 和 a什麼關系,就等價於 人 和張三是什麼關系,
就是張三是一個實體,實實在在存在的,而人只是描述張三這個實體屬於那種類型的一個說明,就是表示,張三是一個人。
B a= new B() 這個就等價於 男人 張三 = new 男人();
完全可以的,沒毛病,但是為什麼都建議寫成 人 張三 = new 男人();而不建議寫成 男人 張三 = new 男人()呢
比如說你有一個類C,這個類裡面有個方法,
addPerson(人 某某某) 或者 addPerson(男人 某某某)
如果你定義成前面方式,你可以添加男人,也可以添加女人,如果你定義成後面那種,那你只能添加男人。
抽象的東西往往具有不定性,具有靈活性。具體的東西就定死了。