接口与具体的实现类之间也存在着多态性
1>通过接口可以实现不相关类的相同行为,而不需要考虑这些类之间的层次关系
2>通过接口可以指明多个类需要实现的方法,一般用于定义对象的扩张功能。
3>接口主要用来定义规范,解除耦合关系
public class TestInterface{
public static void test1(Runner r){
r.run();
}
public static void test2(Swimmer s){
s.swim();
}
public static void test3(Flier f){
f.fly();
}
public static void main(String[] args){
Duck d = new Duck();
TestInterface.test1(d);
TestInterface.test2(d);
TestInterface.test3(d);
}
}
interface Runner{
public abstract void run();
}
interface Swimmer{
void swim();
}
interface Flier{
void fly();
}
class Duck implements Runner,Swimmer,Flier{
public void run(){
System.out.println("鸭子跑");
}
public void swim(){
System.out.println("鸭子游泳");
}
public void fly(){
System.out.println("鸭子飞");
}
}
1>通过接口可以实现不相关类的相同行为,而不需要考虑这些类之间的层次关系
2>通过接口可以指明多个类需要实现的方法,一般用于定义对象的扩张功能。
3>接口主要用来定义规范,解除耦合关系
public class TestInterface{
public static void test1(Runner r){
r.run();
}
public static void test2(Swimmer s){
s.swim();
}
public static void test3(Flier f){
f.fly();
}
public static void main(String[] args){
Duck d = new Duck();
TestInterface.test1(d);
TestInterface.test2(d);
TestInterface.test3(d);
}
}
interface Runner{
public abstract void run();
}
interface Swimmer{
void swim();
}
interface Flier{
void fly();
}
class Duck implements Runner,Swimmer,Flier{
public void run(){
System.out.println("鸭子跑");
}
public void swim(){
System.out.println("鸭子游泳");
}
public void fly(){
System.out.println("鸭子飞");
}
}