标题:多态的相关问题
只看楼主
yu1543054075
Rank: 1
等 级:新手上路
帖 子:102
专家分:8
注 册:2015-4-30
结帖率:90.24%
已结贴  问题点数:5 回复次数:5 
多态的相关问题
class A {
    public void f() {
    System.out.println("AAAA");
 }
}
class B extends A {
    public void f() {
    System.out.println("BBBB");
 }
  public void g() {
  System.out.println("CCCC");
 }
}
 
public class Test4 {
    public static void main(String[] args) {
        A aa = new A();
        B bb = new B();
        
        aa = bb;
        bb = (B)aa;
        aa.f();
        aa.g();
    }
}
不知道哪里出错了,我想要实现aa.g()
搜索更多相关主题的帖子: public 
2015-06-01 17:47
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:2 
aa是父类A的对象,并没有void g()这个方法

剑栈风樯各苦辛,别时冰雪到时春
2015-06-01 18:50
日知己所无
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:38
帖 子:427
专家分:2071
注 册:2014-3-22
得分:0 
对啊对啊,g是A的子类B里面定义的方法,父类A没有办法访问的
2015-06-01 18:52
yu1543054075
Rank: 1
等 级:新手上路
帖 子:102
专家分:8
注 册:2015-4-30
得分:0 
有什么方法可以访问吗
2015-06-01 20:30
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:0 
回复 4楼 yu1543054075
aa是父类A的对象,并没有void g()这个方法
那么,答案很明显,类A加上这个方法就好了

剑栈风樯各苦辛,别时冰雪到时春
2015-06-01 20:34
秦时的明月夜
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:13
帖 子:126
专家分:504
注 册:2013-3-12
得分:3 
程序代码:
  A1 aa = new A1();
        B1 bb = new B1();
        
        aa = bb;//虽然你把子类赋给了父类,但是父类中并没有g()这个属性,aa里存的是bb内存中的东西
        //aa在调用的时候自然找不到属性,你可以把它当成c语言的指针问题来看待,在这里叫引用……
        bb = (B1)aa;
        aa.f();
        aa.g();
2015-06-01 20:36



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-446073-1-1.html




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

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