package com.itheima;
/**
* 7、 分析运行结果,说明原理。(没有分析结果不得分)
class A {
void fun1() {
System.out.println(fun2());
}
int fun2() {
return 123;
}
}
public class B extends A {
int fun2() {
return 456;
}
public static void main(String args[]) {
B b = new B();
b.fun1();
A a = b;
a.fun1();
}
}
* @author Administrator
*
*/
public class Test7 {
public static void main(String[] args) {
/***
* B b = new B();
* 创建B对象
b.fun1();
输出456,
B类继承A类,所以B类中的fun2()方法会覆盖A类中的fun2()方法
因此b.fun1();语句调用的是B类中的fun2()方法,故返回456
A a = b;
将B类的对象赋值给父类即多态中的向上转型,a和b指向对内存中的同一对象
a.fun1();//输出456,由于成员方法存在方法重写,所以它运行看右边。
*/
}
}
/**
* 7、 分析运行结果,说明原理。(没有分析结果不得分)
class A {
void fun1() {
System.out.println(fun2());
}
int fun2() {
return 123;
}
}
public class B extends A {
int fun2() {
return 456;
}
public static void main(String args[]) {
B b = new B();
b.fun1();
A a = b;
a.fun1();
}
}
* @author Administrator
*
*/
public class Test7 {
public static void main(String[] args) {
/***
* B b = new B();
* 创建B对象
b.fun1();
输出456,
B类继承A类,所以B类中的fun2()方法会覆盖A类中的fun2()方法
因此b.fun1();语句调用的是B类中的fun2()方法,故返回456
A a = b;
将B类的对象赋值给父类即多态中的向上转型,a和b指向对内存中的同一对象
a.fun1();//输出456,由于成员方法存在方法重写,所以它运行看右边。
*/
}
}