| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 590 人关注过本帖
标题:问个小问题
收藏  订阅  推荐  打印
angelnana
Rank: 2
等级:注册会员
帖子:176
积分:1956
注册:2007-8-13
问个小问题

JFrame frame = new ImageViewerFrame();
ImageViewerFrame 是继承于JFrame 的,那么和
ImageViewerFrame frame = new ImageViewerFrame();有什么区别呢?
好像经常看见前面写父类,new后面写子类的写法,比如说list
有什么区别呢
2008-7-30 11:27
hwoarangzk
Rank: 12Rank: 12Rank: 12
来自:冰封王座
等级:贵宾
威望:12
帖子:1888
积分:20496
注册:2007-7-17

建议LZ复习一下Java继承那一章的内容

I'm here, as always...
2008-7-30 11:44
hwoarangzk
Rank: 12Rank: 12Rank: 12
来自:冰封王座
等级:贵宾
威望:12
帖子:1888
积分:20496
注册:2007-7-17

假设A是B的父类
A a = new B();
a其实是A类型的引用,因此,只能使用A类的方法但是不能使用B类的方法。
为什么可以用“=”号呢?
我们可以说方形是图形,但是不能说图形是方形。方形是图形的子类,所以说方形是图形
B b = new B();
这个就是完全能够使用B类中的所有方法了

I'm here, as always...
2008-7-30 12:30
angelnana
Rank: 2
等级:注册会员
帖子:176
积分:1956
注册:2007-8-13
回复 3# hwoarangzk 的帖子

那A a = new B();
a其实是A类型的引用,因此,只能使用A类的方法但是不能使用B类的方法。
既然这样,直接写A a = new A();就可以了阿

2008-7-30 12:36
hwoarangzk
Rank: 12Rank: 12Rank: 12
来自:冰封王座
等级:贵宾
威望:12
帖子:1888
积分:20496
注册:2007-7-17

public static void test(A a);
假设有一个这个方法,那么
A a = new B();
你可以将这个引用作为参数传进去的

I'm here, as always...
2008-7-30 12:42
angelnana
Rank: 2
等级:注册会员
帖子:176
积分:1956
注册:2007-8-13

还是没明白!!!

2008-7-30 12:45
hwoarangzk
Rank: 12Rank: 12Rank: 12
来自:冰封王座
等级:贵宾
威望:12
帖子:1888
积分:20496
注册:2007-7-17

那么你可以通过这个方法操作B类型的对象了啊,不用对每个类型都写一个方法

I'm here, as always...
2008-7-30 12:46
angelnana
Rank: 2
等级:注册会员
帖子:176
积分:1956
注册:2007-8-13

你不是说不能用用B类的方法吗

2008-7-30 12:50
hwoarangzk
Rank: 12Rank: 12Rank: 12
来自:冰封王座
等级:贵宾
威望:12
帖子:1888
积分:20496
注册:2007-7-17

操作B类型的对象不一定非要用B类型的方法啊

I'm here, as always...
2008-7-30 12:51
angelnana
Rank: 2
等级:注册会员
帖子:176
积分:1956
注册:2007-8-13

那为什么要写B呢,不写A呢
我就是不明白

2008-7-30 12:52
共有 589 人关注过本帖
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.054222 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved