介绍
最近发现基础越来越重要,就打算再看一边编程思想,发现了天天在用的组合和继承。不废话了。
组合通常就是在新类中使用现有类的功能,而不是现有类的结构。新类中通过使用现有类的功能而完成新的功能。组合这种形式就是一种显式地调用。
继承的意思就是父类和子类是同一类的东西。只是通过使用新类来扩展父类的功能。子类只是父类的一种特殊的类型。继承是一种隐式地调用。
例子
组合:华为手机可以听音乐,oppo手机使用华为手机的功能来提供了新功能,听音乐上网。
public class HuaweiMobile {
public void music() {
System.out.println("听音乐");
}
}
public class OppoMobile {
private HuaweiMobile huaweiMobile;
// 上网
public void surfOnline() {
huaweiMobile.music();
System.out.println("上网");
}
}
继承:华为手机1代可以听音乐,华为手机2代基于1代手机既可以上网也可以听音乐。
public class HuaweiMobile {
public void music() {
System.out.println("听音乐");
}
}
public class HuaweiMobile2 extends HuaweiMobile{
// 上网
public void surfOnline() {
super.music();
System.out.println("上网");
}
}
区别
组合说到底是通过has-a(有一个)这种方式来表达两个事物之间的关系。继承是通过is-a(是一个)这种方式来表达两个事物之间的关系。
网友评论