java和.net的对象类型转换浅谈
在家无聊之时,开始研究起.net和java语法区别,让我奇怪的是在java中,只要方法签名一样就自动覆盖父类的方法,而在c#中,需要特别标明才被覆盖,这点我比较欣赏c#的做法,更加灵活,至于father=son这样的赋值问题,则概念一模一样。
用vs.net2003通过调试观察c#语句运行次序,有趣的事与我们通常的想象不同,它是先创建子类的空间,再创建父类的空间,所以我猜测在字段上使用base引用父类的字段给子类初始化将报错,果然。
曾经在对c#的接口的测试中,发现如果存在一个超过2代的子孙关系,则接口方法的实现将选取与直系有牵连覆盖关系的最后一个子孙的方法,当然前提是最小的子孙算到赋值语句右端的类。
呵呵,两种测试结合起来想就容易想通了。对于java估计原理应该大同小异,c#和java浅一看有很大相似,但实际却有着不同的考量。
用vs.net2003通过调试观察c#语句运行次序,有趣的事与我们通常的想象不同,它是先创建子类的空间,再创建父类的空间,所以我猜测在字段上使用base引用父类的字段给子类初始化将报错,果然。
曾经在对c#的接口的测试中,发现如果存在一个超过2代的子孙关系,则接口方法的实现将选取与直系有牵连覆盖关系的最后一个子孙的方法,当然前提是最小的子孙算到赋值语句右端的类。
呵呵,两种测试结合起来想就容易想通了。对于java估计原理应该大同小异,c#和java浅一看有很大相似,但实际却有着不同的考量。