“is-a”关系使用继承!
1.上面的通过在Audi类中增加一个Car属性虽然也复用了代码,但是不会逻辑不容易理解。“has-a”关系使用组合!
1.计算机类,主板类。可以通过在计算机类在增加主板属性来复用主板类的代码!
package theChildOfGod.bjxy.oop.inherit;
/*
* 测试组合
*
*/
public class Animal2{
String eye;
public void run() {
System.out.println("跑跑!");
}
public void eat() {
System.out.println("吃吃!");
}
public void sleep() {
System.out.println("zzzzzz");
}
public Animal2() {
super();
System.out.println("创建一个动物!");
}
public static void main(String[] args) {
Bird2 b = new Bird2();
b.run();
b.animal2.eat();
Mammal2 c = new Mammal2();
c.taisheng();
}
}
class Mammal2 {
Animal2 animal2 = new Animal2();
public void taisheng() {
animal2.sleep();
System.out.println("我是胎生");
}
}
class Bird2 {
Animal2 animal2 = new Animal2();
public void run(){
animal2.run();
System.out.println("我是一只小小鸟!飞呀飞不高!");
}
public void eggSheng() {
System.out.println("卵生");
}
}