接口中默认方法
package myInterfaceDefault;
public interface MyInterface {
void show1();
void show2();
// void show3();
//默认方法(可以不重写)
default void show3() {
System.out.println("show3");
}
}
package myInterfaceDefault;
public class MyInterfaceImplOne implements MyInterface {
@Override
public void show1() {
System.out.println("One show1");
}
@Override
public void show2() {
System.out.println("One show2");
}
//默认方法可以重写,但要去掉default关键字
@Override
public void show3() {
System.out.println("One show3");
}
}
package myInterfaceDefault;
public class MyInterfaceImplTwo implements MyInterface {
@Override
public void show1() {
System.out.println("Two show1");
}
@Override
public void show2() {
System.out.println("Two show2");
}
}
package myInterfaceDefault;
public class MyInterfaceDemo {
public static void main(String[] args) {
//按照多态的方式创建对象并使用
MyInterface my = new MyInterfaceImplOne();
my.show1();
my.show2();
my.show3();
}
}
接口中静态方法
package myInterfaceStatic;
public interface Inter {
void show();
default void method(){
System.out.println("Inter中的默认方法执行了");
}
//静态方法
static void test(){
System.out.println("Inter中的静态方法执行了");
}
}
package myInterfaceStatic;
public class InterImpl implements Inter {
@Override
public void show() {
System.out.println("show方法执行了");
}
}
package myInterfaceStatic;
public class InterDemo {
public static void main(String[] args) {
//按照多态的方式创建并使用
Inter i = new InterImpl();
i.show();
i.method();
// i.test();
// InterImpl.test();
//静态方法只能通过接口名调用,不能通过实现类名或者对象名调用
Inter.test();
}
}