美文网首页
java se接口2.0

java se接口2.0

作者: 起名字真难难难 | 来源:发表于2020-02-11 11:31 被阅读0次

    需注意:
    1、接口没有构造函数静态代码块
    2、类的直接父类唯一,但一个类可同时实现多个接口
    3、常量是由类构造器在初始化时加载,而非对象构造器

    /实现类实现了两个接口,中间用逗号分隔
    public  class Zi extends Fu implements InterfaceImplementA,InterfaceImplementB {
        @Override
        public void methodA() {
        }
        @Override
        public void methodB() {
        }
    }
    

    3、实现类实现的多个接口中,有重复的抽象方法,只需覆写一次

    public interface InterfaceImplementA {
        public abstract void method();
        public default void methodC(){
        }
    }
    
    public interface InterfaceImplementB {
        public abstract void method();
        public default void methodC(){
        }
    }
    
    public  class Zi extends Fu implements InterfaceImplementA,InterfaceImplementB {
    //只重写了一次
        @Override
        public void method() {
        }
    //对实现接口冲突的默认方法进行复写
        @Override
        public void methodC() {
        }
    }
    

    4、如果实现方法没有覆盖接口的所有抽象类,那么他是一个抽象类
    5、实现类实现的多个接口中,有重复的默认方法,实现类一定对冲突方法进行复写

    public interface InterfaceImplementA {
        public default void methodD(){
            System.out.println("接口");
        }
    }
    
    public interface InterfaceImplementB {
        public default void methodD() {
            System.out.println("接口哈哈");
        }
    }
    
    public  class Zi implements InterfaceImplementA,InterfaceImplementB {
        @Override
        public void methodD() {
        }
    }
    

    6、一个类的直接父类与接口默认方法冲突,优先实现父类

    public interface MyInterface1 {
        public default void method(){
            System.out.println("默认方法");
        }
    }
    
    public class Fu {
        public void method(){
            System.out.println("父类方法");
        }
    }
    
    public class MyImplement extends Fu implements MyInterface1 {
    }
    
    public class MyMain {
        public static void main(String[] args) {
            MyImplement implement=new MyImplement();
            implement.method();
        }
    }
    
    运行结果

    类与接口的关系

    1、类与类之间是单继承
    2、一个类可以实现多个接口
    3、接口与接口之间可以实现多继承
    注:
    (1)多个父接口的抽象方法重复没关系

    public interface FuInterface1 {
        public abstract void method();
    }
    
    public interface FuInterface2 {
        public abstract void method();
    }
    
    public interface ZiInterface extends FuInterface1,FuInterface2 {
    }
    

    (2)多个父接口的默认方法重复,子类必须对默认方法进行复写,且必须带有default关键字

    public interface FuInterface1 {
        public default void method(){
        }
    }
    
    public interface FuInterface2{
        public default void method(){
        }
    }
    
    public interface ZiInterface extends FuInterface1,FuInterface2 {
        @Override
        default void method() {
        }
    }
    

    相关文章

      网友评论

          本文标题:java se接口2.0

          本文链接:https://www.haomeiwen.com/subject/wxdzxhtx.html