黑马程序员技术交流社区
标题:
多态的有关问题
[打印本页]
作者:
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