美文网首页
java se 接口1.0

java se 接口1.0

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

    接口就是一种公用的规范标准,符合规范标准,就可通用
    定义接口:
    格式

    public interface 接口名称{//方法体}
    

    接口中的内容:
    1、常量
    2、抽象方法
    3、默认方法
    4、静态方法
    5、私有方法

    一、接口定义抽象方法

    注意事项:
    1、接口中的抽象方法是固定的public abstract修饰的
    2、public abstract是可以省略的,直接写返回值类型(参数列表);
    使用步骤:
    1、不能new,不能直接使用,必须有一个实现类来实现接口
    2、实现类必须要覆盖重写接口中所有的抽象方法
    3、创建实现类对象,并加以使用
    注:若实现类没有复写接口中的所有抽象方法,那么这个实现类是抽象的

    public interface MyInterface {
        public abstract void methodA();
    }
    
    public class ImplementCla implements MyInterface{
        @Override
        public void methodA() {
            System.out.println("A");
        }
    }
    

    二、接口定义默认方法

    格式:

    [public] default 返回值类型 方法名(){}
    

    注:默认方法能解决接口升级的问题
    接口中添加新的方法,为了使已投入的代码能够继续使用,在接口里创建默认方法

    1、接口的默认方法可通过实现类的对象直接调用
    2、接口的默认方法可被实现类覆盖
    3、创建实现类继承了默认方法,若实现类没有重写默认方法,会向上找到接口

    //接口
    public interface InterfaceDefault {
        public abstract void method();
        public default void method2(){
            System.out.println("接口的默认方法");
        }
    }
    
    //实现类覆盖了接口中所有的方法
    public class InterfaceMethodA implements InterfaceDefault {
        @Override
        public void method() {
            System.out.println("A复写了接口的抽象方法");
        }
        @Override
        public void method2(){
            System.out.println("A覆盖了默认方法");
        }
    }
    
    //只覆盖了抽象方法,没覆盖默认方法
    public class InterfaceMethodB implements InterfaceDefault {
        @Override
        public void method() {
            System.out.println("B复写了接口的抽象方法");
        }
    }
    
    public class MainInterface {
        public static void main(String[] args) {
            InterfaceMethodA methodA=new InterfaceMethodA();
            methodA.method();
            methodA.method2();
            System.out.println("================");
            InterfaceMethodB methodB=new InterfaceMethodB();
            methodB.method();
            methodB.method2();
        }
    }
    
    运行结果

    三、接口定义静态方法

    格式:

    public static 返回值类型 方法名(){}
    

    使用方法:接口名.方法名();
    实现类创建的对象不能调用

    public interface MyInterfaceStatic {
        public static void method(){
            System.out.println("这是一个静态方法");
        }
    }
    
    public class MyMainMethod {
        public static void main(String[] args) {
            MyInterfaceStatic.method();//接口名进行调用,不用创建实现类和实现类对象
        }
    }
    

    四、接口定义私有方法

    public interface ImplementPrivateStatic {
        public static void methodA(){
            commonmethod();
        }
        public static void methodB(){
            commonmethod();
        }
        //只能让上面两个默认方法调用,不能让实现类调用
        public static void commonmethod(){
            System.out.println("AAA");
            System.out.println("BBB");
            System.out.println("CCC");
        }
    }
    

    共有方法只能让上面两个默认方法调用,不能让实现类调用,故应将公有方法私有化

    1、普通私有方法

    解决多个默认方法访问重要代码

    private void commonmethod(){
            System.out.println("AAA");
            System.out.println("BBB");
            System.out.println("CCC");
        }
    
    2、静态私有方法
    public class MainPrivate {
        public static void main(String[] args) {
            ImplementPrivateStatic.methodA();
            ImplementPrivateStatic.methodB();
        }
    }
    

    五、接口中的成员变量(常量)

    必须用 public static final进行修饰
    格式:

    public static final 数组类型 名称=数据值;
    

    注:
    1、public static final可省略
    2、常量必须赋值
    3、常量名称一般使用大写字母加下划线

    相关文章

      网友评论

          本文标题:java se 接口1.0

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