package myinterface;publicclasstext01{publicstaticvoidmain(String[] args){//无法修改,因为k是常量//Myinter.k = 20;
Myinter.syahello();}}interfaceMyinter{int k =2;//接口中可以存在静态方法,并且静态方法不需要子类实现publicstaticvoidsyahello(){
System.out.println("hello");}}
接口多继承
package myinterface;publicclasstest02{publicstaticvoidmain(String[] args){//多态: 子类的实例可以赋给父类做引用
A a =newD();
B b =newD();//a去调用m1
a.m1();//如果a想调用m2怎么办?//1.强制类型转换(接口转换)
B b1 =(B)a;
b1.m2();//2.向下转型
D d =(D)a;
d.m2();/**
* 注意: 接口和接口之间转换时,即使没有继承关系,也可以强制类型转换
* 但是,在运行时,也可能会报ClassCastException异常
*///此时a和c并没有任何关系,但是依然可以进行强转,不过在运行时会出错//C c = (C)a;/**
* 异常信息
* java.lang.ClassCastException: class myinterface.D cannot be cast to class myinterface.C
*
*///在进行强制类型转换时,尽量使用if+instanceof进行判断if(a instanceofC){
C c =(C)a;}}}interfaceA{publicvoidm1();}interfaceB{publicvoidm2();}interfaceC{}//多实现classDimplementsA,B{//重写两个接口中的方法publicvoidm1(){
System.out.println("m1...");}publicvoidm2(){
System.out.println("m2...");}}