java程序设计学习第十三天
(完善接口学习)
/*
*
- 接口中是可以定义 成员变量 但是必须用 public static final 关键字修饰
- 从效果上来看 就相当于是一个常量
- 1.接口中的常量 用 public static final 来修饰,是可以省略这三个关键字
- 2.相当是常量,因此只能初始化的生活进行赋值,后面不能更改
- 3.建议命名格式用大写字母加下划线
*/
public class glc {
int num=5;
public void method() {
}
}
// static final
public interface MyInterfaceConst {
public static final int NUM_OF_CLASS=5;
}
/*
*
- 1.接口中是没有静态代码块和构造方法的
- 2.一个类的直接父类只有一个,但是一个类可以实现多个接口
- 3.如果实现类 所实现的多个接口中,存在重复的抽象方法,那么只需要覆盖重写一次即可
- 4.如果实现类没有覆盖重写所有接口当中的所有抽象方法,那么实现类必须是一个抽象类
- 5.如果实现类所实现的多个接口中,存在重复的默认方法,那么实现类一定要对默认方法进行覆盖重写
- 6.一个类如果直接父类当中的方法和接口当中的默认方法产生了冲突,优先使用父类中的方法
*/
public class glc {
public static void main(String[] args) {
Zi zi=new Zi();
zi.method();
}
}
//错误写法 接口中不能有静态代码块
//static{}
//错误写法 接口中不能有构造方法
//public MyInterfaceA(){}
public interface MyInterfaceA {
public abstract void method();
public abstract void methodAbs();
public default void methodDefault() {
System.out.println(“默认方法A”);
}
}
/*
*
- 1.类和类之间的是单继承 直接父类只有一个
- 2.类和接口之间是多实现一个类可以实现多个接口
- 3.接口和接口之间是多继承的
- 注意事项
- 1.多个父接口中的抽象方法如果重复,没有影响
- 2.多个父接口当中的默认方法重复
/
public class glc {
//MyInterface myinterface=new MyInterface();
}
/
*
- java中有四种权限修饰符
-
public protected (default) private
- 同一个类中(我自己) yes yes yes yes
- 同一个包中(我的邻居) yes yes yes no
- 同一个包中的子类(儿子) yes yes no no
- 不同包子类 yes yes no no
- 不同包的非子类 yes no no no
/
/
*
- 这个接口中一共有几个方法 4个
- methodA 接口A的方法
- methodB 接口B的方法
- methodcommon 同时来源于接口A和B
- method 自己的方法
*/
public interface MyInterface extends MyInterfaceA,MyInterfaceB {
public abstract void method();
@Override
default void methodDefault() {
MyInterfaceA.super.methodDefault();
}
}