【接口】可以认为是特殊的抽象类,但是接口只抽象方法,而抽象类抽象整个对象
只有抽象方法,不需要构造方法
一个类不能继承自多个类,但是一个接口可以被多个类实现,接口之间也可继承
接口中的所有成员变量都默认是由public static final修饰的,接口中的所有方法都默认是由public abstract修饰的。(接口里面只有常量与抽象方法)
//我们有乒乓球运动员和篮球运动员,乒乓球教练和篮球教练,为了出国交流,跟乒乓球相关的运动员都要学习英语
//抽象类:人类类(子类:运动员类,教练类),运动员类(子类:乒乓球运动员,篮球运动员),教练类(子类:乒乓球教练,篮球教练)
// 接口:学习英语
package 接口实例;
//抽象人类类
public abstract class Human {
private String name;
private int age;
//构造方法
public Human() {}
public Human(String name,int age) {
this.setName(name);
this.setAge(age);
}
//age与name的get,set方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//抽象方法
public abstract void eat();
}
package 接口实例;
//抽象教练类 继承自抽象人类类
public abstract class coach extends Human{
public coach() {}
public coach(String name,int age) {
super(name,age);
}
public abstract void eat();
public void study() {
System.out.println("教练爱教运动员");
}
}
package 接口实例;
//抽象运动员类 继承自抽象人类类
public abstract class sportsman extends Human {
public sportsman() {}
public sportsman(String name,int age) {
super(name,age);
}
public abstract void eat();
public void study() {
System.out.println("运动员爱学习");
}
}
package 接口实例;
//学英语接口
public interface English {
public abstract void learn();
}
package 接口实例;
//乒乓球运动员类 继承抽象运动员类 使用接口学英语
public class Pingpangman extends sportsman implements English {
//重写抽象方法
@Override
public void eat() {
System.out.println("乒乓球运动员要吃饭");
}
@Override
public void learn() {
System.out.println("乒乓球运动员要学习英语");
}
//构造方法
public Pingpangman() {}
public Pingpangman(String name,int age) {
super(name,age);
}
}
package 接口实例;
//乒乓球教练类 继承抽象教练类 使用接口学英语
public class Pingpangcoach extends coach implements English{
@Override
public void eat() {
System.out.println("乒乓球教练要吃饭");
}
@Override
public void learn() {
System.out.println("乒乓球教练要学习英语");
}
public Pingpangcoach() {}
public Pingpangcoach(String name,int age) {
super(name,age);
}
}
package 接口实例;
//篮球运动员类 继承抽象运动员类
public class Basketballman extends sportsman {
//重写抽象方法
@Override
public void eat() {
System.out.println("篮球运动员要吃饭");
}
//构造方法
public Basketballman() {}
public Basketballman(String name,int age) {
super(name,age);
}
}
package 接口实例;
//篮球教练类 继承抽象教练类
public class Basketballcoach extends coach {
//重写抽象方法
@Override
public void eat() {
System.out.println("篮球教练要吃饭");
}
public Basketballcoach() {}
public Basketballcoach(String name,int age) {
super(name,age);
}
}