Java 多态的中转!!//有趣的编程故事!!

知识点:
向上转型(自动类型提升)
从子到父:父类引用指向子类的对象
父类 父类对象名 = new 子类();
向下转型(强制类型转换)
从父到子:父类引用转为子类的对象
子类 子类对象名 = (子类)父类对象;
好处:
向上转型:父类引用指向子类对象,提高了程序的扩展性。
向下转型:父类引用转为子类对象,可以访问子类的特有功能(新增方法)。

代码:

class 张三爹{
 int age = 45;
 public void teach(){
  System.out.println("讲解java");
 }
}
class 张三 extends 张三爹{
 int age = 25;
 public void teach(){
  System.out.println("讲解小学数学");
 }
 public void playGame(){
  System.out.println("玩游戏");
 }
}
//测试类
public class Test04 {
 public static void main(String[] args) {
  /*
   * 最近java特别火,导致张三爹特别忙,讲很多课,
   * 有一天张三爹外出讲课,这时候有人来到张三家,找张三爹讲课
   * 张三爹不在,但是对方给出很多报酬,张三想我装成我爹出去挣钱
   * 张三,穿上他爹的衣服,就去讲课了。
   * */
  张三爹  k = new 张三(); 
  //到了对方家,聊天,问您多大了
  System.out.println(k.age);  //45
  //开始讲课
  k.teach(); //数学
  //不行,张三回到家
//  k.playGame(); //错误,因为当前操作的是父类的对象,不能直接访问子类新增的方法
  //脱去张三爹的衣服,恢复自己的身份
  张三 h = (张三)k;
  h.playGame();
 }
}

结果:

           45
           将小学数学
           玩游戏

关注我,持续为你更新!!!

发布了5 篇原创文章 · 获赞 5 · 访问量 27

猜你喜欢

转载自blog.csdn.net/xue3236522091/article/details/105620810