java se 接口1.0

2020-02-10  本文已影响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、常量名称一般使用大写字母加下划线

上一篇 下一篇

猜你喜欢

热点阅读