| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 619 人关注过本帖
标题:关于 重载和重写的问题
只看楼主 加入收藏
mybenya
Rank: 1
等 级:新手上路
帖 子:40
专家分:4
注 册:2011-6-6
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:3 
关于 重载和重写的问题
public class Demo09 {
    public static void main(String[] args) {
        Super obj = new Sub();
        Doo d = new Doo();
        d.t(obj);
  }
}
class Super{
    public void t(){System.out.println("Super.t()");}
}
class Sub extends Super{
    public void t(){System.out.println("Sub.t()");}
}
class Doo{
    public void t(Super obj){
        System.out.println("t(Super)"); obj.t();
    }
    public void t(Sub obj){
        System.out.println("t(Sub)"); obj.t();
    }
}

在这里我想问问各位大虾,Super本身是一个类,为什么又会作为另外一个类public void t(Super obj)方法的参数Super ,obj是Super的一个对象,为什么也作为了参数。还有就是d.t(obj);是什么意思
搜索更多相关主题的帖子: Super public 
2013-07-12 06:34
yss0729
Rank: 3Rank: 3
来 自:江西 九江
等 级:论坛游侠
帖 子:43
专家分:197
注 册:2013-6-8
收藏
得分:7 
首先我告诉你
Super是一个普通的类,在这段代码里是作为Sub的父类
其中 Sub类中的 t()方法是重写了父类Super的t()方法
而在Doo类中,两个t方法进行了重载,重载的条件是在同一个类中,方法名相同,返回类型可以不同,参数类型必须不同
Main()里面new的是Sub子类,也就是说调用的是Doo里面的t(Sub obj)
不知这样你能理解点了吗
2013-07-12 08:57
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:7 
你没见过类对象作为函数参数吗?比如说,一个类A,一个成员函数int func(A &a),这样就可以通过a来访问类A的数据成员

思考赐予新生,时间在于定义
2013-07-12 09:13
xwq934088893
Rank: 2
等 级:论坛游民
威 望:1
帖 子:8
专家分:17
注 册:2013-7-12
收藏
得分:7 
首先,Super是一个普通的类
其次,Sub继承了Super成为一个子类,并且重写了父类Super的方法 t();
        Dao也是一个普通的类,但是里面有2个方法t(Super obj),和t(Sub obj),这两个是重载关系,重载要在一个类中,方法名相同,重载有三种,1).参数类型不一样。2).参数个数不一样。3).参数顺序不同
在Demo09类中,Main()方法中首先在产生Super和Dao的对象,继而Dao的对象d调用他的方法d.t(obj),而obj是Super的对象,正好符合Dao中的第一个方法。
2013-07-12 11:11
快速回复:关于 重载和重写的问题
数据加载中...
 
   



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

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