zoukankan      html  css  js  c++  java
  • 接口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() {
             
        }
    
        
    }
  • 相关阅读:
    优先队列
    Problem W UVA 662 二十三 Fast Food
    UVA 607 二十二 Scheduling Lectures
    UVA 590 二十一 Always on the run
    UVA 442 二十 Matrix Chain Multiplication
    UVA 437 十九 The Tower of Babylon
    UVA 10254 十八 The Priest Mathematician
    UVA 10453 十七 Make Palindrome
    UVA 10163 十六 Storage Keepers
    UVA 1252 十五 Twenty Questions
  • 原文地址:https://www.cnblogs.com/uoar/p/7148743.html
Copyright © 2011-2022 走看看