接口interface

接口顧名思義是用來拓展功能的ide

接口的注意點:函數

1.接口是一個特殊的類spa

2.接口成員變量默認修飾符爲 public static final code

3.在jdk1.7以前,接口中只能夠有抽象方法,在jdk1.8及以後,接口中能夠有非抽象方法,用static和default修飾,用static修飾的方法只能夠經過接口名調用,對象

而default修飾的方法,只能經過繼承此接口的實現類調用blog

4.接口沒有構造函數,不能建立對象(抽象類有構造函數,子類建立的對象時候默認調用父類構造函數,但抽象類自己不能建立對象)繼承

5.接口被非抽象類繼承時,非抽象類必須重寫接口中全部抽象方法,接口被抽象類繼承時,抽象類能夠重寫其中的抽象方法,也能夠不重寫接口

6.一個類能夠實現多個接口虛擬機

7.接口中的常量能夠經過實現類訪問,也能夠經過接口名訪問class

8.接口中的抽象方法只能經過實現類調用

9.接口中的方法若是沒有加上權限或者abstract修飾符 ,虛擬機會默認加上public abstract 修飾符 ,而且只支持public 和 default權限修飾符 ,並且default在此處不等同於在其餘地方使用default權限修飾符 ,在此處是方便經過繼承此接口的實現類去調用

 

 

public class Demo4 {

    /**
     * @param args
     */
    public static void main(String[] args) {
//        LoginDao ld = new LoginDao();
        
        User u = new User();
        
        System.out.println(LoginDao.str);// 接口中的常量能夠經過接口名訪問
        System.out.println(u.a);    // 接口中的常量能夠經過實現類訪問
        
        u.update();   // 接口中的抽象方法只能經過實現類訪問
        u.del();    // 接口中default修飾的方法只能經過實現類訪問
        
        LoginDao.add(); // 接口中static修飾的方法只能經過接口名訪問

    }

}

interface LoginDao{
    
    int a =10;
    
    String str = "aaa";
    
    void update();
    
    static void add(){
        System.out.println("add....");
    }
    
    default void del(){
        System.out.println("add....");
    }
}

interface queryDao{
    
    
    void query();
    
}

interface  Zi extends queryDao,LoginDao{
    
}

abstract class Account implements LoginDao,queryDao{
    
    @Override
    public void update() {
        // TODO Auto-generated method stub
        
    }
    
    @Override
    public void del() {
         
    } 
    
    
     
}

class User implements LoginDao,queryDao{
    
    @Override
    public void update() {
         System.out.println("sadfasf");
        
    }

    @Override
    public void query() {
        // TODO Auto-generated method stub
        
    }
    
    @Override
    public void del() {
         
    }

    
}
相關文章
相關標籤/搜索