基础介绍:
public interface 接口名称 {}
接口中的成员变量均为 public static final
接口中的方法均为公共抽象的,public abstract,abstract修饰的方法没有方法体
public interface 接口名称 extends 接口1,接口2...{}
接口继承别的接口用 extends 关键字,而且接口的继承是多继承,这一点可以弥补类是单继承的缺陷接口可以声明引用变量,但不能直接 new 创建对象
class 类名 implements 接口1,接口2....{}
类实现接口使用 implements 关键字,然后创建实现类的对象
类实现接口是多实现的,implements 接多个接口名称,之间用,隔开
实例:
声明一个爸爸打球的接口
public interface Father {
//63岁
public static final int age=63;
//爸爸打球
public void playBall();
}
声明一个妈妈养花的接口
public interface Mother {
//妈妈养花
public void growFlowers();
}
声明一个爷爷喜欢读书的类
public class Gandpa {
public void enjoy(){
System.out.println("喜欢读书");
}
}
儿子实现了爸爸妈妈的爱好,也继承了爷爷的爱好
public class Son extends Gandpa implements Father,Mother{
@Override
public void playBall() {
System.out.println("儿子喜欢打篮球");
System.out.println("爸爸岁数:"+age);
}
@Override
public void growFlowers() {
System.out.println("儿子喜欢养月季");
}
}
运行结果:
public class Test {
public static void main(String[] args) {
Son son = new Son();
son.playBall();
son.growFlowers();
//儿子继承了爷爷读书的爱好
son.enjoy();
System.out.println("=====================分隔符=======================");
// 当声明对象是爸爸的时候,儿子只能实现爸爸打球的方法,儿子喜欢打篮球
Father f = new Son();
f.playBall();
System.out.println("=====================分隔符=======================");
// 当声明对象是妈妈的时候,儿子只能实现妈妈养护的方法,儿子喜欢养月季
Mother m = new Son();
m.growFlowers();
}
}
输出:
儿子喜欢打篮球
爸爸岁数:63
儿子喜欢养月季
喜欢读书
=====================分隔符=======================
儿子喜欢打篮球
爸爸岁数:63
=====================分隔符=======================
儿子喜欢养月季
女儿继承了爸爸和妈妈的爱好
public interface daughter extends Father,Mother{
}
外孙又继承了爷爷的爱好 且 实现了女儿的爱好
public class Daughter_Baby extends Gandpa implements daughter{
@Override
public void playBall() {
System.out.println("外孙喜欢打排球");
}
@Override
public void growFlowers() {
System.out.println("外孙喜欢养玫瑰");
}
}
运行结果:
public class Test {
public static void main(String[] args) {
Daughter_Baby daughterBaby = new Daughter_Baby();
daughterBaby.growFlowers();
daughterBaby.playBall();
daughterBaby.enjoy();
}
}
输出:
外孙喜欢养玫瑰
外孙喜欢打排球
喜欢读书