一.為什么有接口?
接口:就是一種規則。
二.接口的定義和使用
1.接口用關鍵字interface來定義
public interface 接口名{}
2.接口不能實例化
3.接口和類之間是實現關系,通過implements關鍵字表示
4.接口的子類(實現類)
注意1:
接口和類的實現關系,可以單實現,也可以多實現。
public class 類名 implements 接口名1,接口名2{
}
注意2:
實現類還可以在繼承一個類的同時實現多個接口。
publi class? 類名 extends? 父類 implements? 接口名1,接口名2{
}
三.案例
Animal類:
package day;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();
}
? Swim接口:
package day;public interface Swim {public abstract void swim();
}
Dog類:
package day;public class Dog extends Animal implements Swim {@Overridepublic void eat() {System.out.println("狗吃骨頭");}@Overridepublic void swim() {System.out.println("狗刨");}
}
Forg類:
package day;public class Test {public static void main(String[] args) {Forg f = new Forg("小青", 1);System.out.println(f.getName() + "," + f.getAge());f.eat();f.swim();// 創建兔子的對象Rabbit r = new Rabbit("小白", 2);System.out.println(r.getAge() + r.getAge());r.eat();}
}
Raabit類:
package day;public class Rabbit extends Animal {@Overridepublic void eat() {System.out.println("兔子在吃胡羅波");}public Rabbit() {}public Rabbit(String name, int age) {super(name, age);}
}
Test測試類:
package day;public class Test {public static void main(String[] args) {Forg f = new Forg("小青", 1);System.out.println(f.getName() + "," + f.getAge());f.eat();f.swim();// 創建兔子的對象Rabbit r = new Rabbit("小白", 2);System.out.println(r.getAge() + r.getAge());r.eat();}
}
運行的結果: