日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java抽象类构造器的作用

發布時間:2024/3/26 java 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java抽象类构造器的作用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java抽象類構造器的作用

抽象類中的構造器方法會在子類實例化的時候調用
如下:

abstract class Person {Person(){System.out.println("Person 無參");}Person(String a){System.out.println("Person 有參"+a);} } //boy繼承person public class Boy extends Person{Boy(){System.out.println("Boy 無參");}Boy(String a){System.out.println("Boy 有參"+a);}Boy(int a){super(a+"");System.out.println("Boy int有參"+a);}public static void main(String[] args) {Boy h=new Boy();System.out.println("-----------");new Boy("aa");} }

結果如下:

Person 無參 Boy 無參 ----------- Person 無參 Boy 有參aa

可以看到子類繼承抽象類后,子類實例化時會自動執行父類的無參構造方法。


延申使用:
1:可以利用抽象類構造器的此特點獲取所有的子類,并調用子類中的方法
Person.java

public abstract class Person {public static final List<Person> ALLLIST=new ArrayList<>();//父類初始化添加子類實例Person(){Person.ALLLIST.add(this);System.out.println("Person 無參");}Person(String a){System.out.println("Person 有參"+a);}abstract void init(); }

Girl.java

public class Girl extends Person{@Overridevoid init() {System.out.println("girl 初始化...");} }

Boy.java

//boy繼承person public class Boy extends Person{public static void main(String[] args) {//在普通方法中需要實例化。ALLLIST才會把子類添加到list集合中//在springboot項目中,只要將Boy與Girl方法添加@Component注解即可將子類添加到集合中,無需new實例化對象Boy b=new Boy();Girl g=new Girl();//list中可以獲取所有繼承Person的子類List<Person> list=Person.ALLLIST;System.out.println("所有的子類:"+list);//調用子類中的方法list.forEach(e -> e.init());}@Overridevoid init() {System.out.println("boy 初始化...");} }

運行結果:

Person 無參 Person 無參 所有的子類:[abstrac.Boy@9e89d68, abstrac.Girl@3b192d32] boy 初始化... girl 初始化...

抽象類可以實現接口,然后不用重寫接口中的任何方法
在定義接口后,若有接口的實現類,那么必須去重寫接口中的所有方法。能不能不重寫接口的方法呢,當然是可以的,如果是抽象類實現了接口,即可不用重寫接口的任何方法。

public interface TestService {void printTest();String printTest1(); } public class TestServiceImpl implements TestService {@Overridepublic void printTest() {System.out.println("進入printTest");}@Overridepublic String printTest1() {System.out.println("進入printTest1");return "進入printTest1";} } public abstract class AbstractTest implements TestService{//可以不去實現TestService中的任何接口 }

總結

以上是生活随笔為你收集整理的Java抽象类构造器的作用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。