复用类
来源:互联网 发布:高斯滤波算法实现 编辑:程序博客网 时间:2024/05/17 02:01
组合
使用方法:在新的类中产生现有类的 对象
package javabasis.OO;/** * Created by admin on 2017/2/14. */class Stu { private int id; private Grade grade; public Stu(int id, Grade grade) { this.id = id; this.grade = grade; } public void getInfo(){ System.out.println("学生编号:"+this.id); System.out.println("语文成绩:"+this.grade.Chinese); System.out.println("数学成绩:"+this.grade.math); }}class Grade{ int Chinese; int math; public Grade(int chinese, int math) { Chinese = chinese; this.math = math; }}public class ZuHe{ public static void main(String[] args) { Stu stu = new Stu(1001,new Grade(88,96)); stu.getInfo(); }}在上面的例子中,成绩是一个基础类,包含语文、数学两种属性。学生是一个新产生的类,每个学生都包含成绩的属性,故把成绩这个类作为学生类的一个属性,是一种has-a的关系。
继承
package javabasis.OO;/** * Created by admin on 2017/2/14. */public class DuoTai { public static void main(String[] args) { Animal dog = new Dog("旺财"); dog.spark(); } void speak(Animal animal){ animal.spark(); }}class Animal{ String name; void spark(){ System.out.println("动物会叫"); } public Animal(String name) { this.name = name; }}class Dog extends Animal{ public Dog(String name) { super(name); } @Override void spark() { //super.spark(); System.out.println(super.name); System.out.println("汪汪"); }}
在上面的例子当中,狗是动物的一种。使用extends关键字实现。子类具备父类的所有属性和方法。同时,也可以改进继承自父类的方法,实现不同的功能
是一种is-a的关系(狗是动物的一种)
组合和继承之间的选择
到底是该用组合还是继承,一个清晰的方法是判断到底需不需要从新类型向基类进行向上转型。如果必须向上转型,则继承是必要的;但如果不是必须的,那么就需要好好考虑是否真的需要继承了。
参考文献:《Java编程思想》第四版
0 0
- 复用类
- 复用类
- 复用类
- 复用类
- 复用类
- 复用类
- 复用类
- 复用类
- 复用类
- 复用类
- 复用类
- 复用类
- 复用类
- 复用类
- 复用类
- 复用类
- 复用类
- 复用类
- Windows 64位 Python 2.7 简单安装MySql模块
- JS动态生成界面中存在的问题!
- js 高程学习总结 第六章
- 不连续处断开
- ubuntu升级php
- 复用类
- Spring配置By Craig Walls
- 剑指offer 面试题4—替换字符串中空格
- zynq的学习(一)
- ScrollView嵌套ListView显示不完全、嵌套TextView不能滚动解决办法
- Excel:一维表和二维表 互转
- 合理使用Ehcache
- numpy使用小技巧
- 2月14号关于编辑地址后保存不更新的问题