java继承与组合
来源:互联网 发布:剑网3脸型数据 编辑:程序博客网 时间:2024/05/29 14:26
继承是实现类重用的重要手段,但继承带来了一个最大的坏处:破坏封装。子类可以直接访问父类的属性(内部信息)和方法,从而造成子类与父类的严重耦合。子类可以重写的方式来改变父类方法实现,从而导致子类可以恶意篡改父类的方法。
为了保证父类良好的封装性,不会被子类随意改变,应该遵循如下规则:
1,属性尽量设置成private,不让子类访问
2,父类中那些仅为辅助其他工具方法,应该使用private。如果必须用public,但又希望不被重写,可以使用final。如果希望被子类重写,但不希望别的类,可以使用protected
3,不能在父类构造器中调用被子类重写的方法。
如果需要复用一个类,除了把这个类当成基类来继承外,还可以把该类当成另一个类的组合成分,从而允许新类直接复用该类的public方法。
组合把旧类对象作为新类属性嵌入,用以实现新类的功能。通常需要在新类里使用private修饰嵌入旧类对象。
class Bird
{ private Animal a;
public Bird(Animal a)
{ this.a=a;
}
]
注意:使用继承和组合,都需要创建两个对象。继承是父类对象和子类对象。组合是创建封装对象和自身对象。所以开销差不多。
0 0
- JAVA-组合与继承
- JAVA 组合与继承
- JAVA 继承与组合
- java继承与组合
- Java继承与组合
- java继承与组合
- java组合与继承
- java 继承与组合
- java 继承与组合
- Java中的继承与组合
- java中的继承与组合
- Java中的继承与组合
- Java中的继承与组合
- Java的继承与组合
- Java中的继承与组合
- Java中的继承与组合
- java之继承与组合
- java的继承与组合
- JSP基础知识总结
- Python 中copy与deepcopy的比较
- C++之封装篇:拷贝构造函数
- android中自定义监听
- 浅谈Android BLE编程
- java继承与组合
- Browsersync
- 100. Same Tree (判断二叉树是否相等)
- MySQL开发规范与使用技巧总结
- lucene源码分析---11
- Oracle LOB
- CCF 201609-3 炉石传说
- Java--异常的基本概念
- Redis 与 Python-redis基本命令备忘