class a{}
class b extends a{}
a a = new b();
b類繼承a類,那麼a a = new b(); 比 b b = new b(); 的好處在**?
b b = new b(); b可以呼叫
1)a類的沒有被子類覆蓋的方法
2)a類被子類覆蓋的方法
3)b類特有的方法
而a a = new b();只可以呼叫 1和2,那麼不直接用 b b = new b()呢 ?
有人說這是因為多型的特性,沒錯。但是我們也要看**的使用環境。
b繼承與a,你在做開發寫**的時候,需要考慮
1、b類那些物件可以不需要擴充套件,不需要使用自己的非繼承覆蓋方法時,你就可以直接使用 a a=new b();
2、當你那些物件在以後功能的實現時需要擴充套件時功能時,你則可以使用b b=new b(),這樣就可以讓你在以後維護**的時候,也就是擴充套件時,能夠更方便,更清晰!
50 多型,為什麼總是要用父類引用指向子類物件?
多型三要素 1.繼承 2.重寫父類方法 3.父類引用指向子類物件 package 20191211 多型 author tedu public class polymorphictest class animal class dog extends animal class cat extends ...
父類引用子類物件
父類引用子類物件 package test class fruit1 string get1 父類引用子類物件 如果父類的方法可以被重寫 靜態方法不能被重寫,因為它是隨著類的建立而存在於記憶體,只有乙份 並且已經重寫,那麼呼叫的是子類的方法 反之,則呼叫父類裡的方法 public class fru...
父類例項化子類
最近在琢磨c 的時候,經常發現類似這樣的例子 public class people public class man people 我想問一下,在實際的程式設計中,會有這樣的需要嗎?請有經驗的人說說看.有這樣的需要的,比如people類有乙個run方法,man和woman這兩個類都是繼承自peop...