1.接口组成更新概述
接口的组成
-
常量
- public static final
-
抽象方法
- public abstract
-
默认方法(Java 8)
-
静态方法(Java 8)
-
私有方法(Java 9)
2.接口中的默认方法
-
接口中默认方法的定义格式:
- 格式:
public default 返回值类型 方法名(参数列表){ }
- 范例:
public default void show3(){ }
- 格式:
-
接口中默认方法的注意事项
- 默认方法不是抽象方法,所以不强制重写。但是可以被重写,重写的时候去掉
default
关键之 public
可以省略,default
不能省略
- 默认方法不是抽象方法,所以不强制重写。但是可以被重写,重写的时候去掉
代码
MyInterface
接口
package Study07;
public interface MyInterface {
void show1();
void show2();
default void show3(){
System.out.println("秀儿3");
}
}
MyInterfaceImplOne
接口实现类
package Study07;
public class MyInterfaceImplOne implements MyInterface{
@Override
public void show1() {
System.out.println("玩秀儿1");
}
@Override
public void show2() {
System.out.println("玩秀儿2");
}
@Override
public void show3() {
System.out.println("玩秀儿3");
}
}
MyInterfaceImplTwo
接口实现类
package Study07;
public class MyInterfaceImplTwo implements MyInterface{
@Override
public void show1() {
System.out.println("吐秀儿1");
}
@Override
public void show2() {
System.out.println("吐秀儿2");
}
}
MyInterfaceDemo
测试类
package Study07;
/*
需求:
- 定一个接口MyInterface,里面有两个抽象方法
- void show1();
- void show2();
- 定义接口的两个实现类
- MyInterfaceImplOne
- MyInterfaceImplTwo
- 定义测试类
- MyInterfaceDemo
- 在主方法中,按照多态的方式创建对象并使用
*/
public class MyInterfaceDemo {
public static void main(String[] args) {
MyInterface mi = new MyInterfaceImplOne();
mi.show1();
mi.show2();
mi.show3();
MyInterface mi1 = new MyInterfaceImplTwo();
mi1.show1();
mi1.show2();
mi1.show3();
}
}
3.接口中的静态方法
接口中静态方法的定义格式
-
格式:
public static 返回值类型 方法名(参数列表){ }
-
范例:
public static void show(){ }
接口中静态方法的注意事项
- 静态方法只能通过接口名调用,不能通过实现类名或者对象名调用。
- public可以省略,static不能省略
代码:
- 接口
Inter
package Study08;
public interface Inter {
void show();
default void method(){
System.out.println("冬天十根香肠");
}
// public static void test(){
// System.out.println("冬天十根金条");
// }
static void test(){
System.out.println("冬天十根金条");
}
}
InterImpl
实现类
package Study08;
public class InterImpl implements Inter{
@Override
public void show() {
System.out.println("要的是态度");
}
}
InterDemo
测试类
package Study08;
/*
需求:
- 定义一个接口Inter,里面有三个方法:一个是抽象方法,一个是默认方法,一个是静态方法
- void show();
- default void method(){ }
- public static void test(){ }
- 定义接口的一个实现类
- InterImpl
- 定义测试类
- InterDemo
- 在主方法中,按照多态的方法创建对象并使用
*/
public class InterDemo {
public static void main(String[] args) {
Inter i1 = new InterImpl();
i1.show();
i1.method();
// i1.test();//报错
Inter.test();
}
}
4.接口中的私有方法
接口中私有方法的定义格式
- 格式1
- private 返回值类型 方法名(参数列表){ }
- 范例:private void show(){}
- 格式2
- private static 返回值类型 方法名(参数列表){ }
- 范例:private static void method(){ }
接口中私有方法的注意事项
- 默认方法可以调用私有的静态方法和非静态方法
- 静态方法只能调用私有的静态方法