| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1539 人关注过本帖
标题:关于继承不太懂
只看楼主 加入收藏
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
class first
{
void fn()
{
System.out.println("first::fn");
}
first()
{
fn();
}
}
class second extends first
{
void fn()
{
System.out.println("second::fn");
}
second()
{
}
}
class text
{
public static void main(String[] args)
{
first x=new second();
}
}
put out
second::fn

[此贴子已经被作者于2007-3-24 19:17:40编辑过]


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2007-03-24 19:14
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 

如你所说,如果没有父类这个概念
那么为什么会调用second的函数呢
如果是面向过程思想的话 应该是FIRST的
毕竟C等 都是编译时语言,调用什么函数完全看调用者
(FN那里的THIS应该是FIRST,对吧)

当然,是因为动态绑定,但当你承认这一点时
你就已经默认的承认了面向对象的思想
因为,只有当你这个是一个对象时,才涉及到
动态考虑调用者的实际类型
那么在你心理时刻提醒自己没有‘子类中包含父类’的概念
的前提下,告诉我为什么调用的是SECOND的FN
而不是FIRST的FN
并且告诉我,为什么两个FN 可以同时存在
(我没听说过,重载有靠方法内容重载的)

-----------------------------------------------------
可能你认为我夺理
那我们换从 接口 方面来说
一个最为明显的例子

如果没有 ‘子类中包含父类’的概念
那么void fn(first){}
fn(second)
又是怎么实现的呢?
不会说因为里面有所有需要的函数 就可以的吧
那么请问我再做一个CLASS OOO
让他的内容与FIRST一模一样
那么你说FN(OOO)可以么??
不用‘子类中包含父类’的概念
你怎么解释呢??
这根本就是面向对象思想

----------------------------------------------
我们再从关键字来说

如果没有’子类中包含父类’的概念
那么为什么基类的private成员不可见
就在这个子类域内,为什么就不可以访问
(子类中包含父类’的概念很好解释,书上也说的很明白)

而不仅仅是
spuer调用一个方法那样
完全用方法解释这么多



嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2007-03-24 19:41
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
以下是引用神vLinux飘飘在2007-3-22 0:05:45的发言:
稀里哗啦 更不是你所形容我的这样


神族狂热者
(应该是这个名)
也许你可以说我不对
因为这是我的观念
不是你的

但是不至于这么评价

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2007-03-24 19:45
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
go to WAR3
please write UR viewpoint

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2007-03-24 19:48
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
shit, "稀里哗啦" means nothing!!!! I said I can't read any message from your lastest answer.
Not your thought!

淘宝杜琨
2007-03-24 19:50
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
One Question :

ClassB extends Object

ClassA extends ClassB


Question: how many Object will be created in "new ClassA();" ?

[此贴子已经被作者于2007-3-24 20:08:11编辑过]


淘宝杜琨
2007-03-24 20:07
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
如果算 Object
是3个
不算是2个

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2007-03-24 22:13
beyond_p
Rank: 1
等 级:新手上路
威 望:1
帖 子:114
专家分:0
注 册:2007-1-17
收藏
得分:0 

很有意思! 等呆讨论结果!


越是深入的学习,就越来越感觉到自己知道的太少了...
2007-03-25 09:44
依侬
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-3-25
收藏
得分:0 
刚上来,就看到这么精彩
,我也对继承迷惑,希望能看到结果
2007-03-25 11:02
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
根据我的理解和测试,应该是子类里面不会包含父类的对象,而是扩展了父类

如果你们有NB的话,可以查看一下,运行你们的程序的时候,最后生成了多少对象


可惜不是你,陪我到最后
2007-03-25 13:55
快速回复:关于继承不太懂
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.053232 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved