Java编程思想(20170818)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java编程思想(20170818)相关的知识,希望对你有一定的参考价值。
继承和组合是java中非常常用的两种创建新类型的方法,两者都能提高代码的复用率。
继承主要是想让子类继承父类的基本特性;组合技术通常用于想在新类中使用现有类的功能,而非它的接口。两者的分别是"IS A"和"HAS A"的关系
继承:
class Shape {
public void draw() {
System.out.println("draw a shape");
}
public void erase() {
System.out.println("erase");
}
}
class Square extends Shape {
@Override
public void draw() {
System.out.println("draw a Square");
}
public static void main(String[] args) {
Square s = new Square();
s.draw();
s.erase();
}
}
组合:
class Draw {
public void draw() {
System.out.println("draw");
}
}
class Erase {
public void erase() {
System.out.println("erase");
}
}
class Work {
public void work() {
new Draw().draw();
new Erase().erase();
}
public static void main(String[] args) {
new Work().work();
}
}
一、相比于组合,继承有以下优点:
1、在继承中,子类自动继承父类的非私有成员(default类型视是否同包而定),在需要时,可选择直接使用或重写。
2、在继承中,创建子类对象时,无需创建父类对象,因为系统会自动完成;而在组合中,创建组合类的对象时,通常需要创建其所使用的所有类的对象。
二、组合的优点:
1、在组合中,组合类与调用类之间低耦合;而在继承中子类与父类高耦合。
2、可动态组合。
总结:
虽然继承是OOP的一大特性,但很多时候并不推荐使用,因为它常常容易使结构复杂化,容易出错。因此,除非我们确信使用继承会使程序效率最高,否则,不考虑使用它。
那我们该如何判断是否应该使用继承呢?在java编程思想中提供了一个简单的判断方法,就是在考虑“真的需要向上转型吗?”。
来源;http://www.cnblogs.com/zhisuoyu/p/5270926.html
以上是关于Java编程思想(20170818)的主要内容,如果未能解决你的问题,请参考以下文章