案例1:
package com.curtis;
public class Pol {
public static void main(String[] args) {
B b = new B();
A a = b;// A 的实例化对象,指向B的实例
a.tell01();// new 的是B 类,调用方法时,调用的是B 类中的tell01() 方法
a.tell02();// B 类中没有tell02() 方法,但是B 类继承了A 类,所以该处调用的是A 类中的tell02() 方法
// A 类中是没有tell03() 方法的,所以A 类实例在调用B 类中的方法时是无法调用tell03() 方法的
// 输出结果:
// B-->tell01 方法
// A-->tell02 方法
}
}
class A {
public void tell01() {
System.out.println("A-->tell01 方法");
}
public void tell02() {
System.out.println("A-->tell02 方法");
}
}
class B extends A {
/**
* 父类A 中也有此方法,现在B 类中这样定义,实际是对父类中tell01() 方法进行覆写
*/
public void tell01() {
System.out.println("B-->tell01 方法");
}
public void tell03() {
System.out.println("B-->tell03 方法");
}
}
案例2:
package com.curtis;
public class Pol {
public static void main(String[] args) {
A a=new B();
B b=(B) a;// 向下转型
b.tell01();
b.tell02();
b.tell03();// new 的是B 类,B 类中是有tell03() 方法的;
// 输出结果:
// B-->tell01 方法
// A-->tell02 方法
// B-->tell03 方法
}
}
class A {
public void tell01() {
System.out.println("A-->tell01 方法");
}
public void tell02() {
System.out.println("A-->tell02 方法");
}
}
class B extends A {
public void tell01() {
System.out.println("B-->tell01 方法");
}
public void tell03() {
System.out.println("B-->tell03 方法");
}
}
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦