作者PsMonkey (痞子军团团长)
看板java
标题Re: [问题] 继承与多型的新手问题
时间Wed Jan 22 19:01:14 2014
又要来解释为什麽锁文 Orz
首先,你给的程式不完整
reduce() 没给无所谓,但是 Rational(?,?) 这个也没给?
另外,我实在看不出你到底要问什麽?
就我看来,这只是一个单纯的 compile error
或着反过来说,同样的程式码/概念转到 C++ 上头去,真的能 run 吗?
(真的能 run 就抱歉了,我最後一次写 C++ 是 n 年前带助教课)
※ 引述《wtchen (没有存在感的人)》之铭言:
: 最近在自学data structure的分数运算(真的是自学,非作业)
: 我c++已有很久经验,可是到了java(刚开始碰)很多转不过来,
: class Rational2 extends Rational //定义一个class继承Rational
: {
: public void setRational(long num) //多加一个function定义Rational
意义不明 @_@
: public Rational2() //多型
: {
: super();
: }
多形? 意义不明 @_@
: public Rational2(long num,long denom)
: {
: super(num, denom);
: }
super 根本没这 constructor?
: public Rational2 divide(Rational2 r) // 这个多型不work
: {
: super.divide(r);
: }
为什麽你会觉得他要 work?
super(也就是 Rational)的 divide 的参数型态是 Rational
你要给他 Rational2,但是 Rational2 又不是 Rational 的祖先
那为什麽 compile 会过?
--
钱锺书:
说出来的话
http://www.psmonkey.org
比不上不说出来的话
Java 版 cookcomic 版
只影射着说不出来的话
and more......
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.129.131.129
1F:推 wtchen:已重新编辑贴文,我只是以c++的习惯去想java但是想不透而已 01/22 20:14
2F:→ adrianshum:C++ 这样搞我没理解错的话也是不能跑的 02/04 16:25