?????????????
??????????д?????????????????????Щ??????????????????У????????????????????Щ?????????????????????ɡ?
???????????????????????????????????????????
?????????????????????е????е???????????
???????extends?????????????????????й????
????class SubDemo extends Demo{} //SubDemo??????Demo?????
????????????????
???????????????????
?????????????????????????????????
??????е????
????1.Java???????У????????С?
????//????????????????????????ж??????
????class SubDemo extends Demo{}//ok
????class SubDemo extends Demo1??Demo2...//error
????2.Java???????????(??????)??
????class A{}
????class B extends A{}
????class C extends B{}
??????ü????????????
??????????????????is a???????????????ü?С?
???????????в????????????ü?С?
????super??this?????????
????super???????????????????洢???????(?????????????????)
????super??this???÷??????
????this????????????(?????????)??
????super??????????????????á?
??????ó???
?????????????????????????????super?????????
??????????????????????????????super???
????????
????1.???????
????this.????--?????
????super.????--?????
????2.??????
????this(...)--?????
????super(...)--?????
????3.???????
????this.??????()--?????
????super.??????()--?????
????super();??this();????????????????У????????????
????????????д???????
?????????г??????????????????????????????η?????????η?????????????private????????????????????????б???????????????????????????д?????д??
??????????з???????????????????????з???????д???????
???????????????
????????????????????????????????????????
?????????????????
???????????ó?????
?????????????????????????????????????????????????????????д?????е?????????????????????????????????????????е??????
??????????д??????????????
????????????д????????????????????????????????η?????????????????????????б??????????
???????????????????и?????????????????????б????????????????й???????????
??????????й????????÷???
??????????????????У?????????и?????????????????????????????????????super()??????????????????????????????????????????????????ɡ????????????????????У???????и??????????
????????????????ι?????
???????super??????????ι???????????
???????this????????????????
???????????顢???????飬??????????????
??????????????→??????????→??????????→????????→??????????→????????
????final?????
????final???????????????????????????????????????????
???????
?????????ε????????С?
?????????ε??????????????????
?????????ε???????????????????д???
????final???ε???????????????д?淶????final???ε????????????????????д??
????final???γ?????????????????????????????
??????????????
?????????????????
??????????????????????
????final??private??????
????final???ε??????????
????private????????????????????????????????????????л??????????????
????final???ε?????????????????д??
????private???ε???????????????????????д???????????????????????????????з??????
????final???ε???????????????????????????????????????Σ????????????
????private???ε????????????????????????????е????????????????????????????set??get????????????????
???????
????????
?????????????????????????????
????????????
??????м?л??????????
??????з???????д??
??????и?????????????????
?????????е??????
???????????????????????????????????????
??????????????
?????????????????????????????????????
???????:
???????????????????????????????????????????????з?????????????????????????????????????
??????????????
??????????????????????????????????????????????????????????
????????????????????????????????????е?????????
???????????????????????ж???????????????????????????????????????ж??????????
????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????е??????????????и?????????
??????????????п?????
???????????:???????????????????????????????????????????????
????????????????????????????????????е?????????
????????????ж??????????
????????????????????????????????????
?????????????????????????????????????????????????????
??????????????????????????仯??
????//?????????????????????????????????????и??????ò?????????????г???????
????class PolymorphicTest2{
????public static void main(String[]args){
????Phone p1=new Nokia();//????????????????
????Nokia no=(Nokia)p1;//????????????????????????????????????????Nokia???????Moto??Nexus????
????no.print();//???????Phone---null---0?????????????????
????Phone p2=new Moto();
????Moto m=(Moto)p2;
????m.print();//???????Moto---yellow---1599????????д?????????????????
????Phone p3=new Nexus();
????Nexus ne=(Nexus)p3;
????ne.print();
????}
????}
????class Phone{
????String color;
????int price;
????public void print(){
????System.out.println("Phone---"+color+"---"+price);
????}
????}
????class Nokia extends Phone{
????String color="red";
????int price=1009;
????//public void print(){
????//System.out.println("Nokia---"+color+"---"+price);
????//}
????}
????class Moto extends Phone{
????String color="yellow";
????int price=1599;
????public void print(){
????System.out.println("Moto---"+color+"---"+price);
????}
????}
????class Nexus extends Phone{
????String color="black";
????int price=1999;
????public void print(){
????System.out.println("Nexus---"+color+"---"+price);
????}
????}
????}
????????abstract??
??????????????????н????????????????????????
??????????
????Java?п????????з????????????÷??????????????????????÷???????????????????????????????????
??????????
??????????????????????????????????????????????????????????У????????????壬??δ??????????壬?????й???????????й??????????????????????
?????????????
?????????????????????У?
?????????????????????abstract????????Σ?
????????????????new??????????????ó?????????壻
???????????е???????????????????????д?????е????????????????????????????????????????????????????????????????????
???????????п????г?????????????з?????????????????????????????
????????????????????????????????????????????????д???г???????
???????????????п???????????????????????????????????????
????????????????
????????????????????????????????????
?????????????й???????
?????????????????????????????????????????
????abstract class????????{
????public abstract void???();
????}
????class?????extends????????{
????public void???(){
????System.out.println("???");
????}
????}
????class????extends????????{
????public void???(){
????System.out.println("????");
????}
????}
????class AbstractTest{
????public static void main(String[]args){
???????????=new?????();
??????.???();
??????????=new????();
??????.???();
????}
????}