1. 程式人生 > 其它 >【java基礎】-- java介面和抽象類的異同分析

【java基礎】-- java介面和抽象類的異同分析

目錄
1.抽象類怎麼定義和繼承?
2.介面怎麼定義和實現?
3.總結與對比
1.抽象類怎麼定義和繼承?
我們定義一個抽象類person.class表示類(人):

//使用關鍵字abstract
public abstract class person {
//吃東西的抽象方法,已經有所實現
public void eat(){
System.out.println(“我是抽象方法吃東西”);
}

//public 修飾的空實現的方法
public void run(){}

//無修飾,空實現
void walk(){}

//protected修飾的方法,空實現
protected void sleep(){}

//private修飾的空實現方法
private void read(){}

}

1.抽象類使用abstract修飾,可以有抽象方法,也可以完全沒有抽象方法,也可以是實現了的方法,但是所有的方法必須實現,空實現(public void walk(){})也是實現的一種,而不能寫 public void eat(),後面必須帶大括號。
2.方法修飾符可以使public,protected,private,或者是沒有,沒有預設為只能在同一個包下面繼承,如果是private那麼子類繼承的時候就無法繼承這個方法,也沒有辦法進行修改.
下面我們來寫一個Teacher.class繼承抽象類
同一個包下繼承:

不同的包下面繼承:

同個包下正確的程式碼如下(不重寫私有的方法):

public class teacher extends person {

@Override
public void run(){
System.out.println(“我是實體類的方法跑步”);
}
@Override
void walk(){
System.out.println(“我是實體類的方法走路”);
}
@Override
protected void sleep(){
System.out.println(“我是實體類的方法睡覺”);
}
}

結果如下(沒有覆蓋抽象類吃東西的方法,所以會呼叫抽象類預設的):

下面程式碼是重寫了eat()方法的程式碼,重寫是即使沒有使用@Override也是起作用的:
public class teacher extends person {

public void eat(){
System.out.println(“我是實體類的方法吃東西”);
}
@Override
public void run(){
System.out.println(“我是實體類的方法跑步”);
}
@Override
void walk(){
System.out.println(“我是實體類的方法走路”);
}
@Override
protected void sleep(){
System.out.println(“我是實體類的方法睡覺”);
}
}
結果如下,吃東西的方法被覆蓋掉了:

抽象類不能被例項化,比如:

子類可以實現抽象類的方法,也可以不實現,也可以只實現一部分,這樣跑起來都是沒有問題的,不實現的話,呼叫是預設使用抽象類的空實現,也就是什麼都沒有輸出,要是抽象類有實現,那麼會輸出抽象類預設方法。
比如:

抽象類中可以有具體的方法以及屬性(成員變數)
抽象類和普通類之間有很多相同的地方,比如他們都可以都靜態成員與靜態程式碼塊等等。
2.介面怎麼定義和實現?
介面就是對方法或者動作的抽象,比如person.class想要成為教師,可以實現教師的介面,可以理解為增加能力。
介面不允許定義沒有初始化的屬性變數,可以定義public static final int i=5;,以及public int number =0;,但不允許public int num;這樣定義,所有private的變數都不允許出現,下面是圖片

定義public int number =0;預設是final修飾的,所以也不能改變它的值:

下面是正確的介面程式碼:Teacher.java

public interface Teacher {
public static final int i=5;
public int number =0;
public void teach();
void study();
}
實現類TeacherClass.java
public class TeacherClass implements Teacher{
@Override
public void teach() {
System.out.println(“我是一名老師,我要教書”);
System.out.println(“介面的static int是:”+i);
}

@Override
public void study() {
    System.out.println("我是一名老師,我也要學習");
    System.out.println("介面的int number是:"+number);
}

}
測試類Test.java
public class Test {
public static void main(String[] args){
TeacherClass teacherClass = new TeacherClass();
teacherClass.study();
teacherClass.teach();
System.out.println("-----------------------------------------------------");
Teacher teacher =teacherClass;
teacher.study();
teacher.teach();
}
}
結果:

分析:接口裡面所定義的成員變數都是final的,不可變的,實現介面必須實現接口裡面所有的方法,不能只實現一部分,沒有使用static final修飾的,預設也是final,同時必須有初始化的值,介面不能直接建立物件,比如Teacher teacher = new Teacher() ,但是可以先建立一個介面的實現類,然後再賦值於介面物件。

3.總結與對比
抽象類 介面
使用關鍵字abstract修飾 使用關鍵字interface
使用關鍵字extends實現繼承,可以只實現一部分方法,一部分不實現,或者不實現也可以 implements來實現介面,實現介面必須實現裡面都有的方法
抽象類裡面的方法可以是空實現,可以預設實現,但是必須要帶{} 接口裡面的方法都沒有實現體,也就是{}
抽象類中可以有具體的方法以及屬性,也可以有靜態程式碼塊,靜態成員變數 接口裡面不能有普通成員變數,必須都是不可變的final成員變數,而且所有的成員變數都必須是public
抽象類裡面的方法可以是public,protect,private,但是private無法繼承,所以很少人會這麼寫,如果沒有修飾符,那麼只能是同一個包下面的類才能繼承 介面的方法只能是public或者無修飾符,所有的private修飾都是會報錯的
如果有改動,新增新的方法,可以直接在抽象類中實現預設的即可,也可以在實現類中實現 介面增加新方法必須在介面中宣告,然後在實現類中進行實現
抽象類不能直接建立物件 介面也不能直接建立物件 ,可以賦予實現類的物件
抽象類可以有main方法,而且我們可以直接執行,抽象類也可以有構造器 介面不能有main方法,介面不能有構造器https://github.com/7jxumfpc/mgmiqswogs/discussions/679
https://github.com/qyf0xklw/txdfvjrbzp/discussions/672
https://github.com/7jxumfpc/mgmiqswogs/discussions/680
https://github.com/qyf0xklw/txdfvjrbzp/discussions/673
https://github.com/qyf0xklw/txdfvjrbzp/discussions/674
https://github.com/7jxumfpc/mgmiqswogs/discussions/681
https://github.com/qyf0xklw/txdfvjrbzp/discussions/675
https://github.com/7jxumfpc/mgmiqswogs/discussions/682
https://github.com/qyf0xklw/txdfvjrbzp/discussions/676
https://github.com/7jxumfpc/mgmiqswogs/discussions/683
https://github.com/qyf0xklw/txdfvjrbzp/discussions/677
https://github.com/7jxumfpc/mgmiqswogs/discussions/684
https://github.com/qyf0xklw/txdfvjrbzp/discussions/678
https://github.com/qyf0xklw/txdfvjrbzp/discussions/679
https://github.com/qyf0xklw/txdfvjrbzp/discussions/680
https://github.com/7jxumfpc/mgmiqswogs/discussions/685
https://github.com/7jxumfpc/mgmiqswogs/discussions/686
https://github.com/7jxumfpc/mgmiqswogs/discussions/687
https://github.com/7jxumfpc/mgmiqswogs/discussions/688
https://github.com/7jxumfpc/mgmiqswogs/discussions/689
https://github.com/7jxumfpc/mgmiqswogs/discussions/690
https://github.com/qyf0xklw/txdfvjrbzp/discussions/681
https://github.com/7jxumfpc/mgmiqswogs/discussions/691
https://github.com/qyf0xklw/txdfvjrbzp/discussions/682
https://github.com/7jxumfpc/mgmiqswogs/discussions/692
https://github.com/qyf0xklw/txdfvjrbzp/discussions/683
https://github.com/7jxumfpc/mgmiqswogs/discussions/693
https://github.com/qyf0xklw/txdfvjrbzp/discussions/684
https://github.com/7jxumfpc/mgmiqswogs/discussions/694
https://github.com/qyf0xklw/txdfvjrbzp/discussions/685
https://github.com/7jxumfpc/mgmiqswogs/discussions/695
https://github.com/qyf0xklw/txdfvjrbzp/discussions/686
https://github.com/7jxumfpc/mgmiqswogs/discussions/696
https://github.com/7jxumfpc/mgmiqswogs/discussions/697
https://github.com/qyf0xklw/txdfvjrbzp/discussions/687
https://github.com/7jxumfpc/mgmiqswogs/discussions/698
https://github.com/qyf0xklw/txdfvjrbzp/discussions/688
https://github.com/7jxumfpc/mgmiqswogs/discussions/699
https://github.com/qyf0xklw/txdfvjrbzp/discussions/689
https://github.com/7jxumfpc/mgmiqswogs/discussions/700
https://github.com/qyf0xklw/txdfvjrbzp/discussions/690
https://github.com/7jxumfpc/mgmiqswogs/discussions/701
https://github.com/7jxumfpc/mgmiqswogs/discussions/702
https://github.com/qyf0xklw/txdfvjrbzp/discussions/691
https://github.com/qyf0xklw/txdfvjrbzp/discussions/692
https://github.com/7jxumfpc/mgmiqswogs/discussions/703
https://github.com/qyf0xklw/txdfvjrbzp/discussions/693
https://github.com/7jxumfpc/mgmiqswogs/discussions/704
https://github.com/7jxumfpc/mgmiqswogs/discussions/705
https://github.com/qyf0xklw/txdfvjrbzp/discussions/694
https://github.com/7jxumfpc/mgmiqswogs/discussions/706
https://github.com/qyf0xklw/txdfvjrbzp/discussions/695
https://github.com/7jxumfpc/mgmiqswogs/discussions/707
https://github.com/qyf0xklw/txdfvjrbzp/discussions/696
https://github.com/7jxumfpc/mgmiqswogs/discussions/708
https://github.com/qyf0xklw/txdfvjrbzp/discussions/697
https://github.com/7jxumfpc/mgmiqswogs/discussions/709
https://github.com/qyf0xklw/txdfvjrbzp/discussions/698
https://github.com/7jxumfpc/mgmiqswogs/discussions/710
https://github.com/qyf0xklw/txdfvjrbzp/discussions/699
https://github.com/qyf0xklw/txdfvjrbzp/discussions/700
https://github.com/7jxumfpc/mgmiqswogs/discussions/711
https://github.com/qyf0xklw/txdfvjrbzp/discussions/701
https://github.com/7jxumfpc/mgmiqswogs/discussions/712
https://github.com/qyf0xklw/txdfvjrbzp/discussions/702
https://github.com/7jxumfpc/mgmiqswogs/discussions/713
https://github.com/qyf0xklw/txdfvjrbzp/discussions/703
https://github.com/7jxumfpc/mgmiqswogs/discussions/714
https://github.com/qyf0xklw/txdfvjrbzp/discussions/704
https://github.com/7jxumfpc/mgmiqswogs/discussions/715
https://github.com/qyf0xklw/txdfvjrbzp/discussions/705
https://github.com/7jxumfpc/mgmiqswogs/discussions/716
https://github.com/qyf0xklw/txdfvjrbzp/discussions/706
https://github.com/7jxumfpc/mgmiqswogs/discussions/717
https://github.com/qyf0xklw/txdfvjrbzp/discussions/707
https://github.com/7jxumfpc/mgmiqswogs/discussions/718
https://github.com/qyf0xklw/txdfvjrbzp/discussions/708
https://github.com/7jxumfpc/mgmiqswogs/discussions/719
https://github.com/qyf0xklw/txdfvjrbzp/discussions/709
https://github.com/7jxumfpc/mgmiqswogs/discussions/720
https://github.com/qyf0xklw/txdfvjrbzp/discussions/710
https://github.com/qyf0xklw/txdfvjrbzp/discussions/711
https://github.com/7jxumfpc/mgmiqswogs/discussions/721
https://github.com/qyf0xklw/txdfvjrbzp/discussions/712
https://github.com/7jxumfpc/mgmiqswogs/discussions/722
https://github.com/7jxumfpc/mgmiqswogs/discussions/723
https://github.com/qyf0xklw/txdfvjrbzp/discussions/713
https://github.com/qyf0xklw/txdfvjrbzp/discussions/714
https://github.com/7jxumfpc/mgmiqswogs/discussions/724
https://github.com/qyf0xklw/txdfvjrbzp/discussions/715
https://github.com/7jxumfpc/mgmiqswogs/discussions/725
https://github.com/qyf0xklw/txdfvjrbzp/discussions/716
https://github.com/7jxumfpc/mgmiqswogs/discussions/726
https://github.com/qyf0xklw/txdfvjrbzp/discussions/717
https://github.com/7jxumfpc/mgmiqswogs/discussions/727
https://github.com/qyf0xklw/txdfvjrbzp/discussions/718
https://github.com/7jxumfpc/mgmiqswogs/discussions/728
https://github.com/qyf0xklw/txdfvjrbzp/discussions/719
https://github.com/7jxumfpc/mgmiqswogs/discussions/729
https://github.com/qyf0xklw/txdfvjrbzp/discussions/720
https://github.com/7jxumfpc/mgmiqswogs/discussions/730
https://github.com/qyf0xklw/txdfvjrbzp/discussions/721
https://github.com/7jxumfpc/mgmiqswogs/discussions/731
https://github.com/qyf0xklw/txdfvjrbzp/discussions/722
https://github.com/7jxumfpc/mgmiqswogs/discussions/732
https://github.com/qyf0xklw/txdfvjrbzp/discussions/723
https://github.com/7jxumfpc/mgmiqswogs/discussions/733
https://github.com/qyf0xklw/txdfvjrbzp/discussions/724
https://github.com/7jxumfpc/mgmiqswogs/discussions/734
https://github.com/qyf0xklw/txdfvjrbzp/discussions/725
https://github.com/7jxumfpc/mgmiqswogs/discussions/735
https://github.com/qyf0xklw/txdfvjrbzp/discussions/726
https://github.com/7jxumfpc/mgmiqswogs/discussions/736
https://github.com/qyf0xklw/txdfvjrbzp/discussions/727
https://github.com/qyf0xklw/txdfvjrbzp/discussions/728
https://github.com/7jxumfpc/mgmiqswogs/discussions/737
https://github.com/7jxumfpc/mgmiqswogs/discussions/738
https://github.com/qyf0xklw/txdfvjrbzp/discussions/729
https://github.com/7jxumfpc/mgmiqswogs/discussions/739
https://github.com/qyf0xklw/txdfvjrbzp/discussions/730
https://github.com/7jxumfpc/mgmiqswogs/discussions/740
https://github.com/qyf0xklw/txdfvjrbzp/discussions/731
https://github.com/7jxumfpc/mgmiqswogs/discussions/741
https://github.com/qyf0xklw/txdfvjrbzp/discussions/732
https://github.com/7jxumfpc/mgmiqswogs/discussions/742
https://github.com/qyf0xklw/txdfvjrbzp/discussions/733
https://github.com/7jxumfpc/mgmiqswogs/discussions/743
https://github.com/qyf0xklw/txdfvjrbzp/discussions/734
https://github.com/7jxumfpc/mgmiqswogs/discussions/744
https://github.com/qyf0xklw/txdfvjrbzp/discussions/735
https://github.com/7jxumfpc/mgmiqswogs/discussions/745
https://github.com/qyf0xklw/txdfvjrbzp/discussions/736
https://github.com/7jxumfpc/mgmiqswogs/discussions/746
https://github.com/qyf0xklw/txdfvjrbzp/discussions/737
https://github.com/7jxumfpc/mgmiqswogs/discussions/747
https://github.com/qyf0xklw/txdfvjrbzp/discussions/738
https://github.com/7jxumfpc/mgmiqswogs/discussions/748
https://github.com/qyf0xklw/txdfvjrbzp/discussions/739
https://github.com/7jxumfpc/mgmiqswogs/discussions/749
https://github.com/qyf0xklw/txdfvjrbzp/discussions/740
https://github.com/7jxumfpc/mgmiqswogs/discussions/750
https://github.com/qyf0xklw/txdfvjrbzp/discussions/741
https://github.com/7jxumfpc/mgmiqswogs/discussions/751
https://github.com/qyf0xklw/txdfvjrbzp/discussions/742
https://github.com/7jxumfpc/mgmiqswogs/discussions/752
https://github.com/qyf0xklw/txdfvjrbzp/discussions/743
https://github.com/7jxumfpc/mgmiqswogs/discussions/753
https://github.com/qyf0xklw/txdfvjrbzp/discussions/744
https://github.com/7jxumfpc/mgmiqswogs/discussions/754
https://github.com/qyf0xklw/txdfvjrbzp/discussions/745
https://github.com/7jxumfpc/mgmiqswogs/discussions/755
https://github.com/qyf0xklw/txdfvjrbzp/discussions/746
https://github.com/7jxumfpc/mgmiqswogs/discussions/756
https://github.com/qyf0xklw/txdfvjrbzp/discussions/747
https://github.com/7jxumfpc/mgmiqswogs/discussions/757
https://github.com/qyf0xklw/txdfvjrbzp/discussions/748
https://github.com/7jxumfpc/mgmiqswogs/discussions/758
https://github.com/qyf0xklw/txdfvjrbzp/discussions/749
https://github.com/7jxumfpc/mgmiqswogs/discussions/759
https://github.com/qyf0xklw/txdfvjrbzp/discussions/750
https://github.com/7jxumfpc/mgmiqswogs/discussions/760
https://github.com/qyf0xklw/txdfvjrbzp/discussions/751
https://github.com/7jxumfpc/mgmiqswogs/discussions/761
https://github.com/qyf0xklw/txdfvjrbzp/discussions/752
https://github.com/7jxumfpc/mgmiqswogs/discussions/762
https://github.com/qyf0xklw/txdfvjrbzp/discussions/753
https://github.com/7jxumfpc/mgmiqswogs/discussions/763
https://github.com/qyf0xklw/txdfvjrbzp/discussions/754
https://github.com/7jxumfpc/mgmiqswogs/discussions/764
https://github.com/qyf0xklw/txdfvjrbzp/discussions/755
https://github.com/7jxumfpc/mgmiqswogs/discussions/765
https://github.com/qyf0xklw/txdfvjrbzp/discussions/756
https://github.com/qyf0xklw/txdfvjrbzp/discussions/757
https://github.com/7jxumfpc/mgmiqswogs/discussions/766
https://github.com/7jxumfpc/mgmiqswogs/discussions/767
https://github.com/qyf0xklw/txdfvjrbzp/discussions/758
https://github.com/7jxumfpc/mgmiqswogs/discussions/768
https://github.com/qyf0xklw/txdfvjrbzp/discussions/759
https://github.com/7jxumfpc/mgmiqswogs/discussions/769
https://github.com/qyf0xklw/txdfvjrbzp/discussions/760
https://github.com/7jxumfpc/mgmiqswogs/discussions/770
https://github.com/qyf0xklw/txdfvjrbzp/discussions/761
https://github.com/qyf0xklw/txdfvjrbzp/discussions/762
https://github.com/7jxumfpc/mgmiqswogs/discussions/771
https://github.com/qyf0xklw/txdfvjrbzp/discussions/763
https://github.com/7jxumfpc/mgmiqswogs/discussions/772
https://github.com/qyf0xklw/txdfvjrbzp/discussions/764
https://github.com/qyf0xklw/txdfvjrbzp/discussions/765
https://github.com/7jxumfpc/mgmiqswogs/discussions/773
https://github.com/7jxumfpc/mgmiqswogs/discussions/774
https://github.com/qyf0xklw/txdfvjrbzp/discussions/766
https://github.com/qyf0xklw/txdfvjrbzp/discussions/767
https://github.com/7jxumfpc/mgmiqswogs/discussions/775
https://github.com/qyf0xklw/txdfvjrbzp/discussions/768
https://github.com/7jxumfpc/mgmiqswogs/discussions/776
https://github.com/7jxumfpc/mgmiqswogs/discussions/777
https://github.com/qyf0xklw/txdfvjrbzp/discussions/769
https://github.com/7jxumfpc/mgmiqswogs/discussions/778
https://github.com/qyf0xklw/txdfvjrbzp/discussions/770
https://github.com/7jxumfpc/mgmiqswogs/discussions/779
https://github.com/qyf0xklw/txdfvjrbzp/discussions/771
https://github.com/7jxumfpc/mgmiqswogs/discussions/780
https://github.com/qyf0xklw/txdfvjrbzp/discussions/772
https://github.com/7jxumfpc/mgmiqswogs/discussions/781
https://github.com/qyf0xklw/txdfvjrbzp/discussions/773
https://github.com/7jxumfpc/mgmiqswogs/discussions/782
https://github.com/qyf0xklw/txdfvjrbzp/discussions/774
https://github.com/7jxumfpc/mgmiqswogs/discussions/783
https://github.com/qyf0xklw/txdfvjrbzp/discussions/775
https://github.com/7jxumfpc/mgmiqswogs/discussions/784
https://github.com/qyf0xklw/txdfvjrbzp/discussions/776
https://github.com/7jxumfpc/mgmiqswogs/discussions/785
https://github.com/qyf0xklw/txdfvjrbzp/discussions/777
https://github.com/7jxumfpc/mgmiqswogs/discussions/786
https://github.com/qyf0xklw/txdfvjrbzp/discussions/778
https://github.com/7jxumfpc/mgmiqswogs/discussions/787
https://github.com/7jxumfpc/mgmiqswogs/discussions/788
https://github.com/qyf0xklw/txdfvjrbzp/discussions/779
https://github.com/7jxumfpc/mgmiqswogs/discussions/789
https://github.com/qyf0xklw/txdfvjrbzp/discussions/780
https://github.com/7jxumfpc/mgmiqswogs/discussions/790
https://github.com/qyf0xklw/txdfvjrbzp/discussions/781
https://github.com/qyf0xklw/txdfvjrbzp/discussions/782
https://github.com/7jxumfpc/mgmiqswogs/discussions/791
https://github.com/qyf0xklw/txdfvjrbzp/discussions/783
https://github.com/7jxumfpc/mgmiqswogs/discussions/792
https://github.com/7jxumfpc/mgmiqswogs/discussions/793
https://github.com/qyf0xklw/txdfvjrbzp/discussions/784
https://github.com/qyf0xklw/txdfvjrbzp/discussions/785
https://github.com/7jxumfpc/mgmiqswogs/discussions/794
https://github.com/qyf0xklw/txdfvjrbzp/discussions/786
https://github.com/7jxumfpc/mgmiqswogs/discussions/795
https://github.com/qyf0xklw/txdfvjrbzp/discussions/787
https://github.com/7jxumfpc/mgmiqswogs/discussions/796
https://github.com/qyf0xklw/txdfvjrbzp/discussions/788
https://github.com/7jxumfpc/mgmiqswogs/discussions/797
https://github.com/qyf0xklw/txdfvjrbzp/discussions/789
https://github.com/7jxumfpc/mgmiqswogs/discussions/798
https://github.com/qyf0xklw/txdfvjrbzp/discussions/790
https://github.com/7jxumfpc/mgmiqswogs/discussions/799
https://github.com/qyf0xklw/txdfvjrbzp/discussions/791
https://github.com/7jxumfpc/mgmiqswogs/discussions/800
https://github.com/qyf0xklw/txdfvjrbzp/discussions/792
https://github.com/qyf0xklw/txdfvjrbzp/discussions/793
https://github.com/7jxumfpc/mgmiqswogs/discussions/801
https://github.com/qyf0xklw/txdfvjrbzp/discussions/794
https://github.com/7jxumfpc/mgmiqswogs/discussions/802
https://github.com/7jxumfpc/mgmiqswogs/discussions/803
https://github.com/qyf0xklw/txdfvjrbzp/discussions/795
https://github.com/qyf0xklw/txdfvjrbzp/discussions/796
https://github.com/7jxumfpc/mgmiqswogs/discussions/804
https://github.com/7jxumfpc/mgmiqswogs/discussions/805
https://github.com/qyf0xklw/txdfvjrbzp/discussions/797
https://github.com/7jxumfpc/mgmiqswogs/discussions/806
https://github.com/qyf0xklw/txdfvjrbzp/discussions/798
https://github.com/qyf0xklw/txdfvjrbzp/discussions/799
https://github.com/7jxumfpc/mgmiqswogs/discussions/807
https://github.com/qyf0xklw/txdfvjrbzp/discussions/800
https://github.com/7jxumfpc/mgmiqswogs/discussions/808
https://github.com/qyf0xklw/txdfvjrbzp/discussions/801
https://github.com/7jxumfpc/mgmiqswogs/discussions/809
https://github.com/qyf0xklw/txdfvjrbzp/discussions/802
https://github.com/7jxumfpc/mgmiqswogs/discussions/810
https://github.com/qyf0xklw/txdfvjrbzp/discussions/803
https://github.com/7jxumfpc/mgmiqswogs/discussions/811
https://github.com/qyf0xklw/txdfvjrbzp/discussions/804
https://github.com/qyf0xklw/txdfvjrbzp/discussions/805
https://github.com/7jxumfpc/mgmiqswogs/discussions/812
https://github.com/7jxumfpc/mgmiqswogs/discussions/813
https://github.com/qyf0xklw/txdfvjrbzp/discussions/806
https://github.com/7jxumfpc/mgmiqswogs/discussions/814
https://github.com/qyf0xklw/txdfvjrbzp/discussions/807
https://github.com/7jxumfpc/mgmiqswogs/discussions/815
https://github.com/qyf0xklw/txdfvjrbzp/discussions/808
https://github.com/7jxumfpc/mgmiqswogs/discussions/816
https://github.com/qyf0xklw/txdfvjrbzp/discussions/809
https://github.com/7jxumfpc/mgmiqswogs/discussions/817
https://github.com/qyf0xklw/txdfvjrbzp/discussions/810
https://github.com/7jxumfpc/mgmiqswogs/discussions/818
https://github.com/qyf0xklw/txdfvjrbzp/discussions/811
https://github.com/7jxumfpc/mgmiqswogs/discussions/819
https://github.com/qyf0xklw/txdfvjrbzp/discussions/812
https://github.com/7jxumfpc/mgmiqswogs/discussions/820
https://github.com/qyf0xklw/txdfvjrbzp/discussions/813
https://github.com/7jxumfpc/mgmiqswogs/discussions/821
https://github.com/qyf0xklw/txdfvjrbzp/discussions/814
https://github.com/7jxumfpc/mgmiqswogs/discussions/822
https://github.com/qyf0xklw/txdfvjrbzp/discussions/815
https://github.com/7jxumfpc/mgmiqswogs/discussions/823
https://github.com/qyf0xklw/txdfvjrbzp/discussions/816
https://github.com/7jxumfpc/mgmiqswogs/discussions/824
https://github.com/qyf0xklw/txdfvjrbzp/discussions/817
https://github.com/qyf0xklw/txdfvjrbzp/discussions/818
https://github.com/7jxumfpc/mgmiqswogs/discussions/825
https://github.com/7jxumfpc/mgmiqswogs/discussions/826
https://github.com/qyf0xklw/txdfvjrbzp/discussions/819
https://github.com/7jxumfpc/mgmiqswogs/discussions/827
https://github.com/qyf0xklw/txdfvjrbzp/discussions/820
https://github.com/7jxumfpc/mgmiqswogs/discussions/828
https://github.com/7jxumfpc/mgmiqswogs/discussions/829
https://github.com/qyf0xklw/txdfvjrbzp/discussions/821
https://github.com/7jxumfpc/mgmiqswogs/discussions/830
https://github.com/qyf0xklw/txdfvjrbzp/discussions/822
https://github.com/7jxumfpc/mgmiqswogs/discussions/831
https://github.com/qyf0xklw/txdfvjrbzp/discussions/823
https://github.com/7jxumfpc/mgmiqswogs/discussions/832
https://github.com/qyf0xklw/txdfvjrbzp/discussions/824
https://github.com/7jxumfpc/mgmiqswogs/discussions/833
https://github.com/qyf0xklw/txdfvjrbzp/discussions/825
https://github.com/7jxumfpc/mgmiqswogs/discussions/834
https://github.com/qyf0xklw/txdfvjrbzp/discussions/826
https://github.com/7jxumfpc/mgmiqswogs/discussions/835
https://github.com/qyf0xklw/txdfvjrbzp/discussions/827
https://github.com/7jxumfpc/mgmiqswogs/discussions/836
https://github.com/qyf0xklw/txdfvjrbzp/discussions/828
https://github.com/7jxumfpc/mgmiqswogs/discussions/837
https://github.com/qyf0xklw/txdfvjrbzp/discussions/829
https://github.com/qyf0xklw/txdfvjrbzp/discussions/830
https://github.com/7jxumfpc/mgmiqswogs/discussions/838
https://github.com/qyf0xklw/txdfvjrbzp/discussions/831
https://github.com/7jxumfpc/mgmiqswogs/discussions/839
https://github.com/qyf0xklw/txdfvjrbzp/discussions/832
https://github.com/qyf0xklw/txdfvjrbzp/discussions/833
https://github.com/7jxumfpc/mgmiqswogs/discussions/840
https://github.com/qyf0xklw/txdfvjrbzp/discussions/834
https://github.com/7jxumfpc/mgmiqswogs/discussions/841
https://github.com/qyf0xklw/txdfvjrbzp/discussions/835
https://github.com/7jxumfpc/mgmiqswogs/discussions/842
https://github.com/qyf0xklw/txdfvjrbzp/discussions/836
https://github.com/7jxumfpc/mgmiqswogs/discussions/843
https://github.com/qyf0xklw/txdfvjrbzp/discussions/837
https://github.com/7jxumfpc/mgmiqswogs/discussions/844
https://github.com/qyf0xklw/txdfvjrbzp/discussions/838
https://github.com/7jxumfpc/mgmiqswogs/discussions/845
https://github.com/7jxumfpc/mgmiqswogs/discussions/846
https://github.com/qyf0xklw/txdfvjrbzp/discussions/839
https://github.com/7jxumfpc/mgmiqswogs/discussions/847
https://github.com/qyf0xklw/txdfvjrbzp/discussions/840
https://github.com/7jxumfpc/mgmiqswogs/discussions/848
https://github.com/qyf0xklw/txdfvjrbzp/discussions/841
https://github.com/7jxumfpc/mgmiqswogs/discussions/849
https://github.com/qyf0xklw/txdfvjrbzp/discussions/842
https://github.com/7jxumfpc/mgmiqswogs/discussions/850
https://github.com/qyf0xklw/txdfvjrbzp/discussions/843
https://github.com/7jxumfpc/mgmiqswogs/discussions/851
https://github.com/qyf0xklw/txdfvjrbzp/discussions/844
https://github.com/7jxumfpc/mgmiqswogs/discussions/852
https://github.com/qyf0xklw/txdfvjrbzp/discussions/845
https://github.com/7jxumfpc/mgmiqswogs/discussions/853
https://github.com/qyf0xklw/txdfvjrbzp/discussions/846
https://github.com/7jxumfpc/mgmiqswogs/discussions/854
https://github.com/qyf0xklw/txdfvjrbzp/discussions/847
https://github.com/7jxumfpc/mgmiqswogs/discussions/855
https://github.com/qyf0xklw/txdfvjrbzp/discussions/848
https://github.com/7jxumfpc/mgmiqswogs/discussions/856
https://github.com/qyf0xklw/txdfvjrbzp/discussions/849
https://github.com/7jxumfpc/mgmiqswogs/discussions/857
https://github.com/qyf0xklw/txdfvjrbzp/discussions/850
https://github.com/7jxumfpc/mgmiqswogs/discussions/858
https://github.com/qyf0xklw/txdfvjrbzp/discussions/851
https://github.com/7jxumfpc/mgmiqswogs/discussions/859
https://github.com/qyf0xklw/txdfvjrbzp/discussions/852
https://github.com/7jxumfpc/mgmiqswogs/discussions/860
https://github.com/qyf0xklw/txdfvjrbzp/discussions/853
https://github.com/7jxumfpc/mgmiqswogs/discussions/861
https://github.com/qyf0xklw/txdfvjrbzp/discussions/854
https://github.com/7jxumfpc/mgmiqswogs/discussions/862
https://github.com/qyf0xklw/txdfvjrbzp/discussions/855
https://github.com/7jxumfpc/mgmiqswogs/discussions/863
https://github.com/qyf0xklw/txdfvjrbzp/discussions/856
https://github.com/7jxumfpc/mgmiqswogs/discussions/864
https://github.com/qyf0xklw/txdfvjrbzp/discussions/857
https://github.com/7jxumfpc/mgmiqswogs/discussions/865
https://github.com/qyf0xklw/txdfvjrbzp/discussions/858
https://github.com/7jxumfpc/mgmiqswogs/discussions/866
https://github.com/qyf0xklw/txdfvjrbzp/discussions/859
https://github.com/7jxumfpc/mgmiqswogs/discussions/867
https://github.com/qyf0xklw/txdfvjrbzp/discussions/860
https://github.com/7jxumfpc/mgmiqswogs/discussions/868
https://github.com/qyf0xklw/txdfvjrbzp/discussions/861
https://github.com/7jxumfpc/mgmiqswogs/discussions/869
https://github.com/qyf0xklw/txdfvjrbzp/discussions/862
https://github.com/7jxumfpc/mgmiqswogs/discussions/870
https://github.com/qyf0xklw/txdfvjrbzp/discussions/863
https://github.com/7jxumfpc/mgmiqswogs/discussions/871
https://github.com/qyf0xklw/txdfvjrbzp/discussions/864
https://github.com/7jxumfpc/mgmiqswogs/discussions/872
https://github.com/qyf0xklw/txdfvjrbzp/discussions/865
https://github.com/7jxumfpc/mgmiqswogs/discussions/873
https://github.com/qyf0xklw/txdfvjrbzp/discussions/866
https://github.com/7jxumfpc/mgmiqswogs/discussions/874
https://github.com/qyf0xklw/txdfvjrbzp/discussions/867
https://github.com/7jxumfpc/mgmiqswogs/discussions/875
https://github.com/qyf0xklw/txdfvjrbzp/discussions/868
https://github.com/7jxumfpc/mgmiqswogs/discussions/876
https://github.com/qyf0xklw/txdfvjrbzp/discussions/869
https://github.com/7jxumfpc/mgmiqswogs/discussions/877
https://github.com/qyf0xklw/txdfvjrbzp/discussions/870
https://github.com/7jxumfpc/mgmiqswogs/discussions/878
https://github.com/qyf0xklw/txdfvjrbzp/discussions/871
https://github.com/7jxumfpc/mgmiqswogs/discussions/879
https://github.com/qyf0xklw/txdfvjrbzp/discussions/872
https://github.com/7jxumfpc/mgmiqswogs/discussions/880
https://github.com/qyf0xklw/txdfvjrbzp/discussions/873
https://github.com/7jxumfpc/mgmiqswogs/discussions/881
https://github.com/qyf0xklw/txdfvjrbzp/discussions/874
https://github.com/7jxumfpc/mgmiqswogs/discussions/882
https://github.com/qyf0xklw/txdfvjrbzp/discussions/875
https://github.com/7jxumfpc/mgmiqswogs/discussions/883
https://github.com/qyf0xklw/txdfvjrbzp/discussions/876
https://github.com/7jxumfpc/mgmiqswogs/discussions/884
https://github.com/qyf0xklw/txdfvjrbzp/discussions/877
https://github.com/7jxumfpc/mgmiqswogs/discussions/885
https://github.com/qyf0xklw/txdfvjrbzp/discussions/878
https://github.com/7jxumfpc/mgmiqswogs/discussions/886
https://github.com/qyf0xklw/txdfvjrbzp/discussions/879
https://github.com/7jxumfpc/mgmiqswogs/discussions/887
https://github.com/qyf0xklw/txdfvjrbzp/discussions/880
https://github.com/7jxumfpc/mgmiqswogs/discussions/888
https://github.com/qyf0xklw/txdfvjrbzp/discussions/881
https://github.com/qyf0xklw/txdfvjrbzp/discussions/882
https://github.com/7jxumfpc/mgmiqswogs/discussions/889
https://github.com/7jxumfpc/mgmiqswogs/discussions/890
https://github.com/qyf0xklw/txdfvjrbzp/discussions/883
https://github.com/7jxumfpc/mgmiqswogs/discussions/891
https://github.com/qyf0xklw/txdfvjrbzp/discussions/884
https://github.com/7jxumfpc/mgmiqswogs/discussions/892
https://github.com/qyf0xklw/txdfvjrbzp/discussions/885
https://github.com/7jxumfpc/mgmiqswogs/discussions/893
https://github.com/qyf0xklw/txdfvjrbzp/discussions/886
https://github.com/7jxumfpc/mgmiqswogs/discussions/894
https://github.com/qyf0xklw/txdfvjrbzp/discussions/887
https://github.com/qyf0xklw/txdfvjrbzp/discussions/888
https://github.com/7jxumfpc/mgmiqswogs/discussions/895
https://github.com/qyf0xklw/txdfvjrbzp/discussions/889
https://github.com/qyf0xklw/txdfvjrbzp/discussions/890
https://github.com/7jxumfpc/mgmiqswogs/discussions/896
https://github.com/qyf0xklw/txdfvjrbzp/discussions/891
https://github.com/7jxumfpc/mgmiqswogs/discussions/897
https://github.com/qyf0xklw/txdfvjrbzp/discussions/892
https://github.com/qyf0xklw/txdfvjrbzp/discussions/893
https://github.com/7jxumfpc/mgmiqswogs/discussions/898
https://github.com/qyf0xklw/txdfvjrbzp/discussions/894

那麼我們什麼時候使用介面什麼時候使用抽象類呢?

java有一個缺點,只能實現單繼承,個人覺得介面是為了彌補單繼承而設計的。
介面是對本質的抽象,比如人,可以設計為person.class這個抽象類,提供相關的方法,屬性,但是介面是隻提供方法的,也就是像增加功能的,那麼也就是對方法的抽象。
如果需要預設實現,或者基本功能不斷改變,那麼建議使用抽象類,如果只是增加一種方法,那麼建議使用介面,如果想實現多重繼承,只能是介面與抽象類一起使用以達到想要實現的功能。