• 接口interface


    接口顾名思义是用来拓展功能的

    接口的注意点:

    1.接口是一个特殊的类

    2.接口成员变量默认修饰符为 public static final 

    3.在jdk1.7之前,接口中只可以有抽象方法,在jdk1.8及之后,接口中可以有非抽象方法,用static和default修饰,用static修饰的方法只可以通过接口名调用,

    而default修饰的方法,只能通过继承此接口的实现类调用

    4.接口没有构造函数,不能创建对象(抽象类有构造函数,子类创建的对象时候默认调用父类构造函数,但抽象类本身不能创建对象)

    5.接口被非抽象类继承时,非抽象类必须重写接口中所有抽象方法,接口被抽象类继承时,抽象类可以重写其中的抽象方法,也可以不重写

    6.一个类可以实现多个接口

    7.接口中的常量可以通过实现类访问,也可以通过接口名访问

    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() {
             
        }
    
        
    }
  • 相关阅读:
    尚硅谷vue 10 2 单文件组件
    尚硅谷vue 4 动态绑定class样式
    mysql注意事项 持续补充
    mysql实现分组排序
    python数据分析包 pandas dataframe
    mysql性能调优
    尚硅谷vue 5 条件渲染
    尚硅谷vue 9 生命周期
    尚硅谷vue 8 内置指令 v
    flutter MAC 真机调试
  • 原文地址:https://www.cnblogs.com/uoar/p/7148743.html
Copyright © 2020-2023  润新知