看书的过程中始终没看明白复合和继承的区别 看来看去只看出了他们的相似点
求高手提点
拜谢!
求高手提点
拜谢!
解决方案 »
- for和while循环
- 求从数据库查询出表的结果,显示到JSP页面上的一段JAVA代码,多谢
- 求.....P2PSockets-1.0-beta1.zip...急...
- Java对Oracle时间型字段操作[在线等.]
- 一个简单的问题 请看
- 请大家帮帮忙,不知道哪错了
- 帮帮忙,如何解决JcreatorPro的中文显示问题 如何加中文注释
- 周六考试!到现在还没搞清楚接口怎么使用,有什么意义!拜托高手指点迷津!!
- 兄弟们,帮忙!怎么让web页中操作本地excel的数据插入能够实现...
- 整型数组去重的算法
- 想在jtable的每一行的第一列里放图标。后面显示数据。当我点击第一列的莫个图标时,能够弹出一个窗体。
- 哪儿有现成的java http协议包下载
比如说一个小团队有开发人员类,测试人员类,那么团队类就应该是这两个类的复合.具有两个类的功能,如果什么时候需要新的功能,比如翻译,可以很方便的加入到团队里来.而继承只是对一个类的派生,像上面的例子,如果开发人员和测试人员生个孩子,这个孩子具有父母双方的能力,这就叫继承.这时如果需要加个翻译的功能,就只能再找一个翻译和这个孩子再生个孩子了.
我做了一个练习 对它的初始化顺序有点不明白
//DinnerTable.java
class Table
{ Table()
{System.out.println("Table");}
}
class TableCloth
{ TableCloth()
{System.out.println("TableCloth");}
}
public class DinnerTable extends Table
{ TableCloth tc=new TableCloth();
public static void main(String[] args)
{DinnerTable dt =new DinnerTable();
}
}
这里应该算是复合和继承都用到了
它的执行结果是:
E:\learning\ab\cha6\练习1>java DinnerTable
Table
TableCloth为什么是先执行table呢
这里的TableCloth是不是应该算是初始化呢? 如果是初始化语句那就应该先于main里的构建式
不是吗?
Table()
{System.out.println("Table");}
接着执行DinnerTable的TableCloth tc=new TableCloth();
的初始化,然后执行DinnerTable的构造函数.
2、判断这个类是否有父类,有则递归1,直到object为止;
从最顶的那个类开始(一般是object)
3、按定义的顺序初始化non-static fields;
4、执行类的构造器(函数);
5、下移到子类,再重复3-4;
6、创建对象,并将reference赋值。完成!构造器的第一行就是父构造器的调用,在这个例子里面,使用的是所谓的默认构造器(无参构造器),java编译器会自动引用。可以在Table中将Table()改为Table(String anyInfo){...},看看java的编译错误提示。