一、单个使用
创建一个接口类:
接口类
public interface qian1 {
//1.常量:名称大写(JAVA7)
public static final int NUM = 10;//3个关键字,可以省略部分,常量名需要大写、赋值
//2.抽象方法:abstract(JAVA7)
public abstract void mean1();
//3.默认方法:default(JAVA8及8+)
public default void mean2() {
System.out.println();
}
//4.静态方法:static(JAVA9+)
public static void mean3() {
System.out.println();
}
//5.私有方法:private(JAVA)
public default void moon1() {
System.out.println("姓名:"+"何婷");
mean4();
}
public default void moon2() {
System.out.println("性别:"+"女");
mean4();
}
public static void mean4() {
System.out.println("AAAA");
System.out.println("AAAA");
System.out.println("AAAA");
}
}
实现类
public class qian3 implements qian1{
@Override
public void mean1() {
System.out.println("抽象类在实现类中覆盖重写");
}
@Override
public void mean2() {
// TODO 自动生成的构造函数存根
qian1.super.mean2();
System.out.println("默认方法在实现类中覆盖重写");
}
}
测试类
public class qian4 {
public static void main(String[] args) {
System.out.println(qian1.NUM);//接口名称、常量名称
qian3 a = new qian3();//创建实现类的对象
a.mean1();//对抽象方法进行调用
a.mean2();//默认方法可以直接进行调用,也可以覆盖重写
qian1.mean3();//通过接口调用静态方法
//a.mean3(); 不能通过实现类创建的对象进行调用
a.moon1();//调用私有方法
a.moon2();//调用私有方法
}
}
1.总结:
1、常量:在接口中定义,不需要在实现内操作,需要在测试类中使用:接口名.常量名
2、抽象方法:在接口中定义,需要在实现类覆盖重写,在测试类使用,创建对象,进行调用,通过实现类创建对象
3、默认方法:在接口中定义,可以在实现类覆盖重写,在测试类中可以直接调用
4、静态方法: 在接口中定义,不能在实现类覆盖重写,在测试中调用: 接口名.方法名();
5、私有方法:在接口中定义,不需要在实现类中操作,在测试类使用;可以对默认方法和静态
2.注意:
1、java接口不能被实例化
2、java接口中声明的成员自动被设置为public,因此java接口不能声明私有成员
3、java接口中不能出现方法体
4、接口可以通过使用关键字extends继承其他接口