十三次

一、
java7
1、常量
2、抽象方法
java8
默认方法
静态方法
java9
私有方法

接口中是可以定义成员变量的,但是必须用 public static final 关键字修饰,从效果来看就相当是一个常量。

接口中的常量用public static final 来修饰,是可以省略这三个关键字相当常量,因此只能初始化的进行赋值,后面不能更改,命名格式建议大写字母加下划线

public class Demo01Interface {
int num=5;
public void method() {
}
}

package demo01;

public interface MyInterfaceConst {
public static final int NUM-OF-CLASS=5;
}

二、
1.接口中是没有静态代码块和构造方法的

2.一个类的直接父类只有一个, 但是一个类可以实现多个接口

3.如果实现类所实现的多个接口中,存在重复的抽象方法,那么只需要覆盖重写一次即可

4.如果实现类没有覆盖重写所有接口当中的所有抽象方法,那么实现类必须是一个抽象类

5.如果实现类所实现的多个接口中,存在重复的默认方法产生了冲突,优先使用父类中的方法

6.一个类如果直接父类当中的方法和接口当中的默认方法产生了冲突,优先使用父类当中的方法
三、

1.类和类之间是单继承,直接父类只有一个

2.类和接口之间是多实现,一个类可以实现多个接口

3.接口和接口之间是多继承的

注意事项:
多个父接口中的抽象方法可以重复
多个父接口当中的默认方法可以重复

package demo02;
public class Demo02Interface {
public static void main(String[] agrs) {
Zi zi = new Zi();
zi.method();
}
package demo02;

public interface MyInterface {
public default void method() {
System.out.println(“我是接口里面的默认方法”);
}
package demo02;

public interface MyInterfaceA {
/* 错误写法:接口中不能有静态代码块*/
static {
}

/* 错误写法:接口中不能有构造方法*/
public MyInterfaceA() {
}

public abstract void methodA();

public abstract void methodAbs();

public default void methodDefault() {
System.out.println(“默认方法AAA”);
}
package demo02;

public interface MyInterfaceB {
public abstract void methodB();

public abstract void methodAbs();

public default void methodDefault() {
System.out.println(“默认方法BBB”);
}
package demo02;

public class MyInterfaceImpl implements MyInterfaceA,MyInterfaceB {
@Override
public void methodA() {
// TODO 自动生成的方法存根

}

@Override
public void methodB() {
// TODO 自动生成的方法存根

}

@Override
public void methodAbs() {
// TODO 自动生成的方法存根

}

@Override
public void methodDefault() {
// TODO 自动生成的方法存根
MyInterfaceA.super.methodDefault();
}
package demo02;

public abstract class MyInterfaceAbs implements MyInterfaceA,MyInterfaceB {
@Override
public void methodB() {
// TODO 自动生成的方法存根

}

@Override
public void methodAbs() {
// TODO 自动生成的方法存根

}

@Override
public void methodDefault() {
// TODO 自动生成的方法存根
MyInterfaceA.super.methodDefault();
}
package demo02;
//在此之前,先定义一个接口MyInterface
public class Fu {
public void method() {
System.out.println(“我是父类方法!!”);
}
}
package demo02;

public class Zi extends Fu implements MyInterface{
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值