zoukankan      html  css  js  c++  java
  • 实现多接口和接口的多继承---Java

    /*使用接口的时候,需要注意:
    * 1.接口是没有静态代码块或者构造方法的
    * 2.一个类的直接父类只有一个,但是一个类可以同时实现多个接口;
    * 格式:
    * public class MyInterfaceA implements MyInterfaceA, MyInterfaceB{
    * //覆盖重写所有抽象方法
    * }
    *
    * 3. 如果实现类所实现的多个接口当中,存在重复的抽象方法,那么只需要覆盖重写一次即可
    *
    * 4.如果实现类没有覆盖重写所有接口的所有抽象方法,那么实现类就必须是一个抽象类
    *
    * 5. 如果实现类实现的多个接口当中,存在重复的默认方法,那么实现类一定要对冲突的默认方法实现重写
    *
    * 6. 一个类如果直接父类的方法,和接口中默认的方法起了冲突,优先使用父类当中的方法*/


    public interface MyInterfaceA {
        //错误写法:接口不能有静态代码块
    //    static {
    //
    //    }
    
        //错误写法:接口不能有构造方法
    //    public MyInterfaceA(){
    //
    //    }
        public abstract void methodA();
    
        public abstract void methodAbs();
    
        public default void methodDefault(){
            System.out.println("默认方法AAA");
        }
    }
    package cn.itcast.day10.demo02;
    
    public interface MyInterfaceB {
    
        public abstract void methodB();
    
        public abstract void methodAbs();
    
        public default void methodDefault() {
            System.out.println("默认方法BBB");
        }
    }
     
    /*
    * 1. 类与类之间是单继承的,直接父类只有一个
    * 2. 类与接口之间是多实现的,一个类可以实现多个接口
    * 3. 接口与接口之间是多继承的
    *
    * 4. 多个父接口中的抽象方法如果冲突,没关系
    * 多个父接口中的默认方法如果冲突,有关系
    * */
     
    public interface MyInterfaceA<pu> {
        public abstract void methodA();
    
        public abstract void methodCommon();
    
        public default void methodDefault(){
            System.out.println("AAA");
        }
    
    }
    
    
    public interface MyInterfaceB {
        public abstract void methodB();
    
        public abstract void methodCommon();
    
        public default void methodDefault(){
            System.out.println("BBB");
        }
    
    }
    /*
    * 这个子接口中有几个方法?
    * 4个方法{
    *   methodA、methodB、methodCommon、method
    * }
    * */
    public interface MyInterface extends MyInterfaceA, MyInterfaceB{
    
        public abstract void method();
    
    
        @Override
        default void methodDefault() {
    
        }
    
    }
    public class MyInterfaceImpl implements MyInterface{
        @Override
        public void method() {
    
        }
    
        @Override
        public void methodA() {
    
        }
    
        @Override
        public void methodB() {
    
        }
    
        @Override
        public void methodCommon() {
    
        }
    }
     
  • 相关阅读:
    伟景行 citymaker 从入门到精通(2)——工程图层树加载
    伟景行 citymaker 从入门到精通系列
    伟景行 citymaker 从入门到精通(1)——js开发,最基本demo,加载cep工程文件
    Android手机屏幕投射到电脑神器Vysor
    GeoTools坐标转换(投影转换和仿射变换)
    微信开发系列(1):企业号回调模式认证
    通过扩大IE使用内存,解决skyline在IE下模型不能加载的方法
    SDE ST_Geometry SQL st_intersects查询很慢的解决方法
    axTE3DWindowEx双屏对比控件白屏解决方法以及网上方法的校正(CreateControlOveride)
    namespace使用方法
  • 原文地址:https://www.cnblogs.com/zeon/p/13479176.html
Copyright © 2011-2022 走看看