接口
public abstract class Animal {
private String name;
private int age;
public Animal() {
}
public Animal(String name, int age) {
this.name = name;
this.age = age;
}
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();
}
;
public interface Swim {
public abstract void swim();
}
public class Rabbit extends Animal{
public Rabbit() {
}
public Rabbit(String name, int age) {
super(name, age);
}
@Override
public void eat() {
System.out.println("兔子吃胡萝卜");
}
}
public class Dog extends Animal implements Swim{
public Dog() {
}
public Dog(String name, int age) {
super(name, age);
}
@Override
public void eat() {
System.out.println("狗吃骨头");
}
@Override
public void swim() {
System.out.println("狗刨");
}
}
public class Frog extends Animal implements Swim{
//可以在继承一个类的同时再实现其他接口
//implements 实现接口 可实现多个接口
public Frog() {
}
public Frog(String name, int age) {
super(name, age);
}
@Override
public void eat() {
System.out.println("青蛙吃虫子");
}
@Override
public void swim() {
System.out.println("蛙泳");
}
}
public class Test {
public static void main(String[] args) {
//创建对象
Frog f = new Frog("小哇", 1);
System.out.println(f.getName() + "," + f.getAge());
f.eat();
f.swim();
}
}
成员特点
接口和类之间的关系
注意:
实现多个接口就要重写所有的抽象方法。
实现类如果实现了最下面的子接口,就需要重写这个体系中所有的抽象方法。
JDK8以后接口中新增的方法
子类把从父类继承下来的虚方法表里面的方法进行覆盖了,这才叫重写。