黑马程序员技术交流社区

标题: 多态的有关问题 [打印本页]

作者: yanyoucheng520    时间: 2014-7-18 23:51
标题: 多态的有关问题
在多态中成员函数:参阅引用型变量所属的类是否有调用的方法。如果有,编译通过;如果没有,编译失败。
-------------然后这里所说的引用型变量所述的类,这句话是什么意思,哪位大神能解释下吗附上代码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();  
    }  
}  
作者: 苗润    时间: 2014-7-19 00:13
本帖最后由 苗润 于 2014-7-19 00:17 编辑

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




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2