zoukankan      html  css  js  c++  java
  • Java知识29 接口【多测师】

    一、接口
    Java中,接口是一个抽象类型,是抽象方法的集合,接口通常以interface来声明,一个类通过继承接口的方式来继承接口的抽象方法
    1.接口不是类,编写接口的方式和类相似,类描述对象的属性和方法,接口则包含类要实现的方法
    2.除非实现接口的类是抽象类,否则该类要定义接口中所有的方法
    3.接口不能被实例化,但可以被实现,一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类,Java中接口类型可用来声明一个变量
    
    二、接口与类的异同
    1.一个接口可以有多个方法
    2.接口文件以.Java结尾、接口的字节码文件保存在.class结尾的文件中
    3.接口不能实例化对象,没有构造方法,所有的方法必须是抽象方法,接口不能包含成员变量,除了static变量和final变量
    4.接口不是被类继承,而是被类实现
    5.接口支持多继承
    
    三、接口特性
    1.接口中的方法都是隐式抽象的,会被指定为public abstract 其他修饰符会报错
    2.接口中含有变量,但是接口中的变量会被隐式指定为public static final变量
    3.接口的方法不能在接口中实现,只能由实现接口的类来实现接口中的方法
    4.接口中不能有静态代码块和静态方法(static)
    5.一个类只能继承一个抽象类,一个类可以实现多个接口
    
    四、接口声明语法格式如下:interface关键字用来声明一个接口
    [可见度] interface 接口名称 [extends 其他的类名] { 
        // 声明变量 
        // 抽象方法
    }
    接口特性:
    接口是隐式抽象的,声明接口不需要abstract关键字
    接口中的方法也是隐式抽象的,声明同样不需要abstract关键字,接口中的方法都是公有的
    实例如下:
    interface Animal { 
        public void eat(); 
        public void travel(); 
    }
    
    public class MammalInt implements Animal {
    
      public void eat() {
       System.out.println("Mammal eats");
      }
    
      public void travel() {
       System.out.println("Mammal travels");
      }
    
      public int noOfLegs() {
       return 0;
      }
    
      public static void main(String args[]) {
       MammalInt m = new MammalInt();
       m.eat();
       m.travel();
      }
    }
    运行结果:
    Mammal eats
    Mammal travels
    
    五、接口的实现
    类实现接口的时候要实现接口中所有的方法,否则类要声明为抽象的类
    类使用implements关键字实现接口 implements关键字放在class后面
    实现接口的语法:
    ...implements 接口名称[, 其他接口名称, 其他接口名称..., ...] ...
    实例如上面代码
    
    六、注意的地方:
    1.一个类可以同时实现多个接口
    2.一个类只能继承一个类,但可以实现多个接口
    3.一个接口能继承另一个接口
    
    七、接口的继承
    接口的继承用extends关键字 子接口继承父接口的方法
    
    八、接口的多继承
    Java中,类的多继承是不合法的,但接口是允许多继承的
    接口的多继承中extend关键字只需要使用一次,在其后跟着继承接口,如下:
    public interface Hockey extends Sports, Event
    
    九、标记接口
    常用的继承接口是没有包含任何方法的接口
    标记接口是没有任何方法和属性的接口,它仅仅表明它的类属于一个特定的类型
    标记接口作用:简单来说就是给某个对象打个标
    package java.util; 
    public interface EventListener
    {}
    注意:没有任何方法的接口被称为标记接口。
    标记接口的目的:
    1.建立一个公共的父接口,可以用一个标记接口来建立一组接口父接口
    2.向一个类添加数据类型,实现标记接口的类不需要定义任何接口方法(因为标记接口没有方法)
    
    十、Java接口总结
    1.接口可以多继承 public interface 接口名 extends xx,xx
    2.接口方法必须声明public abstract 不写默认也是
    3.类继续接口必须实现接口里声明的全部方法
    4.类里面可以声明public static final修饰的变量
    5.接口不能被实例化,但可以被实现类创建
    6.想实现多重继承,必须使用接口 子类不能继承多个类,但可以实现多个接口
    
    十一、给接口添加俩种非抽象的方法实现
    1.默认方法  添加default修饰
    2.静态方法  使用static修饰
    interface Test{
        //这个是默认方法
        default String get(String aa){
            System.out.println("我是jdk1.8默认实现方法...");
            return "";
        }  
        //这个是静态方法   
        static void staticmethod(){
            System.out.println("我是静态方法");
        }
    }
  • 相关阅读:
    adb shell top
    数据清洗的方法
    Devices Tree加载流程
    Android驱动之设备树简介
    序列模式挖掘综述
    python 实现kmeans聚类
    numpy中sum(axis=0)和axis=1的计算原理
    win7 VMware下安装centos和Ubuntu共存
    python数据标准化
    python 用PIL Matplotlib处理图像的基本操作
  • 原文地址:https://www.cnblogs.com/xiaoshubass/p/13110979.html
Copyright © 2011-2022 走看看