A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yanyoucheng520 中级黑马   /  2014-7-18 23:51  /  826 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在多态中成员函数:参阅引用型变量所属的类是否有调用的方法。如果有,编译通过;如果没有,编译失败。
-------------然后这里所说的引用型变量所述的类,这句话是什么意思,哪位大神能解释下吗附上代码class class Father {  
    int num = 10;  
    void method1() {  
        System.out.println("Father method 1");  
    }  
  
    void method2() {  
        System.out.println("Father method 2");  
    }  
    static void method4() {  
        System.out.println("Father method 4");  
    }  
}  
  
class Son extends Father {  
    int num = 20;  
    void method1(){  
        System.out.println("Son method 1");  
    }  
    void method3(){  
        System.out.println("Son method 3");  
    }  
    static void method4() {  
        System.out.println("Son method 4");  
    }  
}   
        System.out.println("Father method 4");  
    }  
}  
  
class Son extends Father {  
    int num = 20;  
    void method1(){  
        System.out.println("Son method 1");  
    }  
    void method3(){  
        System.out.println("Son method 3");  
    }  
    static void method4() {  
        System.out.println("Son method 4");  
    }  
}  
  
class DuoTaiDemo2 {  
    public static void main(String[] args) {  
        //演示6.1  
        Father f = new Son();  
        f.method1();  
        f.method2();//对应6.1.2  
        //f.method3(); 对应6.1.1  
         
        //演示6.2  
        System.out.println(f.num);  
         
        //演示6.3  
        f.method4();  
    }  
}  

1 个回复

倒序浏览
本帖最后由 苗润 于 2014-7-19 00:17 编辑

首先,咱既然是java程序员,就不要说是函数,要说就说方法,正题:
根据你上面的代码 Father f = new Son(); 创建子类对象,并且让父类引用指向该对象,那么只能够通过该引用 (即f)调用子类中继承父类的方法,或者是子类中重载父类的方法,即,父类引用只能调用父类中存在的方法,而不能调用子类中特有的方法(父类中没有)
上面你所说的就是这个意思 ,method 1 2 4 为父类中的方法, 子类中  1 4 为重载父类的方法  3 为子类中特有的方法 通过父类引用调用方法,只能调用 1 2 4 而不能调用3 ,子类继承了父类,就继承了他的方法,因此虽然没有重载父类method2方法,也是可以调用的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马