1. 程式人生 > 實用技巧 >java中的抽象類和介面

java中的抽象類和介面

抽象類、抽象方法(abstract抽象類)

//繼承了抽象類的子類,都必須重寫(實現)它的所有 抽象方法(一般方法不用) //除非子類也是抽象類,那就由它的子子類重寫(實現)

//abstract抽象類
//繼承了抽象類的子類,都必須重寫(實現)它的所有 抽象方法(一般方法不用)
//除非子類也是抽象類,那就由它的子子類重寫(實現)
public abstract class Action {
     
     public abstract void doSomething(); //抽象方法
     
     public void test(){
         
     };
 }

  

 package
com.basics.demo4; ​ public class A extends Action { ​ //重寫抽象類裡面的抽象方法 @Override public void doSomething() { ​ } }

//1、不能new這個抽象類,只能靠子類去實現它;約束

//2、抽象類中可以寫普通的方法 //

3、抽象方法必須在抽象類中

介面(interface)

 //介面都會與實現類
 public interface UserService {
     //介面中的所有定義的方法中其實都是抽象的 public abstract
     
//public abstract void add(); //等效於 void add(); //int age = 99; 等效於 //public static final int age = 99; int age = 99; void add(String name); void delete(String name); void update(String name); void query(String name); }

函式式介面

函式式介面就是一個有且僅有一個抽象方法,但是可以有多個非抽象方法的的介面

函式式介面可以被隱式轉換為lambda表示式

實現介面

 public class UserServiceImp1 implements UserService,TimeService{
     //裡面是介面方法的重寫的方法
     //類似可以實現多繼承 , 偽多繼承
 }

作用:

1、約束

2、定義一些方法,讓不同的人實現

3、public abstract

4、public static final

5、介面不能被例項化,因為介面中沒有構造方法

6、可以實現多個介面

7、必須要重寫介面中的方法

抽象方法特點

abstract修飾符:

1.abstract修飾的類為抽象類,此類不能有物件,(無法對此類進行例項化,說白了就是不能new);

2.abstract修飾的方法為抽象方法,此方法不能有方法體(就是什麼內容不能有);

抽象類的使用特點:

1.抽象類不能有物件,(不能用new此關鍵字來建立抽象類的物件);

2.有抽象方法的類一定是抽象類,但是抽象類中不一定有抽象方法;

3.抽象類中的抽象方法必須在子類中被重寫。

介面特點

介面中的所有定義的方法中其實都是抽象的 public abstract


public abstract void add();
等效於 void add();

int age = 99; 等效於
public static final int age = 99;

介面不能被例項化,因為介面中沒有構造方法

類可以實現多個介面,必須要重寫介面中的方法


至於介面和抽象類的區別:

最明顯的一個區別就是他們的實現:一個是介面,一個是類

介面的實現就是去實現這個介面,而且java中一個類可以實現多個介面。 但接口裡面只能寫介面,不能寫普通方法。

而抽象類必須通過繼承去實現,並且java中是單繼承的。 但抽象類中除了可以寫抽象方法外,還可以寫普通方法。

本人也正處於學習階段,這是本人的一些學習筆記和理解,不正確的地方還請理解和指正。