组合与继承
一、组合
class Person {
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void show() {
System.out.println("my name is " + name + " ,my age is " + age);
}
}
class Yjw {
//Yjw类中引用了Person类
Person p;
public Yjw(Person p) {
this.p = p;
}
public void ShowPerson() {
p.show();
}
}
class Run {
public static void main(String[] args) {
Person p1 = new Person("TRBET", 19);
//创建Yjw对象,并将对象引用p1作为参数传入
Yjw y = new Yjw(p1);
y.showPerson();
}
}
二、继承
class Animal {
String name;
int age;
public void setName(String name) {
this.name = name;
}
public void getName() {
return name;
}
}
class Cat extends Plane {
private String color;
public void setColor(String color) {
this.color = color;
}
}
class Run {
public static void main(String[] args) {
Cat c1 = new Cat();
c1.name = "hhh"
c1.setName("yyy")
System.out.println(c1.getName);
}
}
三、两者的区别
- 继承有
is a
的关系,一般是子类是父类的一种;组合有has a
的关系,子类需要用到父类的一些东西 - 一般情况下,会优先与使用组合,在确实必要时才使用继承
- 比如说:水果和苹果使用继承,苹果是水果的一种;汽车和发动机,汽车拥有发动机
这里只举例列明了继承和组合的区别,详细内容请点击 => 继承详细讲解