假设有3个类:Animal、Wolf、Bird
新建一个Animal类 全部在包中
package org;
class Animal{
private void beat(){
System.out.println("心脏跳动...");
}
public void breath(){
beat();
System.out.println("吸一口气,吐一口气,呼吸中...");
}
}
建一个Wolf类
package org;
import org.Animal;//导入包中的Animal类
class Wolf{
//将原来的父类组合到原来的子类,作为子类的一个组合作用
private Animal a;
public Wolf(Animal a){
this.a = a;
}
//重新定义一个自己的breath()方法
public void breath(){
//直接复用Animal类提供的breath()方法来实现Bird类的breath()方法
a.breath();
}
public void fly(){
System.out.println("在地上奔跑...");
}
}
再去建一个Bird类
package org;
import org.Animal;//导入包中的Animal类
class Bird{
//将原来的父类组合到原来的子类,作为子类的一个组合作用
private Animal a;
public Bird(Animal a){
this.a = a;
}
//重新定义一个自己的breath()方法
public void breath(){
//直接复用Animal类提供的breath()方法来实现Bird类的breath()方法
a.breath();
}
public void fly(){
System.out.println("在天空飞翔...");
}
}
在ComFun里调用
package org;
import org.*;//导入包中的所有类
public class ComFun{
public static void main(String[] args){
//实例化Animal
Animal a1=new Animal();
//实例化Bird
Bird b=new Bird(a1);
b.fly();
b.breath();
//实例化Wolf
Wolf w=new Wolf(a1);
w.fly();
w.breath();
}
}