接口
接口
抽象类:包含抽象方法,非抽象
接口:理解为一个纯粹的抽象类
? 接口中定义抽象方法
作为上层的设计需要,设计功能
接口与接口的关系:
接口继承接口 一个接口可以继承多个接口
类与接口关系:
类实现接口 一个类可以实现多个接口
创建animal接口
/*
interface关键字修饰的是接口
接口与接口之间可以一对多继承
*/
public interface Animal extends InterFaceA,InterFaceB {
/*
接口定义的成员变量是一个常量,默认被public static final 修饰
public static final int nums= 10;
*/
int nums= 10;
String s= "傻狗";
/*
jdk8以后接口中声明的抽象方法,默认被public abstract 修饰
public abstract void eat();
*/
void eat();
void sleep();
/*
jdk8以后加入静态方法,默认方法
*/
public static void play(){
System.out.println("狗玩");
}
/*
默认方法,子类可以重写也可以不重写,或通过子类进行调用
*/
public default void test(){
System.out.println("接口中的默认方法");
}
}
创建InterFaceA接口
public interface InterFaceA {
void testA();
}
创建InterFaceB接口
public interface InterFaceB {
void testB();
}
创建InterFaceC接口
public interface InterFaceC {
void testC();
}
创建dog类
/*
当类实现接口时,类要实现接口中所有的方法.
否则,类必须声明为抽象的类
一个类实现多个接口
*/
public class Dog extends Object implements Animal,InterFaceC{
@Override
public void eat() {
System.out.println("狗吃肉");
}
@Override
public void sleep() {
System.out.println("狗 to bed");
}
@Override
public void testA() {
}
@Override
public void testB() {
}
@Override
public void testc() {
}
}
创建测试类
public class InterfaceTest {
public static void main(String[] args) {
System.out.println(Animal.nums);
System.out.println(Animal.s);
Animal dog = new Dog();
dog.eat();
dog.sleep();
dog.test();
Animal.play();
}
}
运行结果:
10
傻狗
狗吃肉
狗 to bed
接口中的默认方法
狗玩