zoukankan      html  css  js  c++  java
  • 转型

    父类代码:

     1 package org.hanqi.pn0120;
     2 
     3 public class Son extends Father {
     4     //Object a;  所有类的父类
     5     public Son()
     6     {
     7         //super 表示父类
     8         super("儿子");
     9         System.out.println("子类的构造方法");
    10     }
    11     public void sing()
    12     {
    13         System.out.println("我喜欢唱歌");
    14     }
    15     //覆盖(重写)
    16     public void work()
    17     {
    18         //调用父类方法
    19         //super.work();
    20         //System.out.println("我不喜欢上班,我要去参加海选");
    21         System.out.println("我边上班边练歌");
    22     }
    23     public static Object getData(int i)
    24     {
    25         Object rtn=null;
    26         //获取数据
    27         if(i==1)
    28         {
    29         //1.father
    30         Father f=new Father("向上转型的父类");
    31         //向上转型
    32         rtn=f;
    33         }
    34         else
    35         {
    36         //2.Son
    37         Son s=new Son();
    38         rtn=s;
    39         }
    40         return rtn;
    41     }
    42 }
    View Code

    子类代码:

     1 package org.hanqi.pn0120;
     2 
     3 public class Son extends Father {
     4     //Object a;  所有类的父类
     5     public Son()
     6     {
     7         //super 表示父类
     8         super("儿子");
     9         System.out.println("子类的构造方法");
    10     }
    11     public void sing()
    12     {
    13         System.out.println("我喜欢唱歌");
    14     }
    15     //覆盖(重写)
    16     public void work()
    17     {
    18         //调用父类方法
    19         //super.work();
    20         //System.out.println("我不喜欢上班,我要去参加海选");
    21         System.out.println("我边上班边练歌");
    22     }
    23     public static Object getData(int i)
    24     {
    25         Object rtn=null;
    26         //获取数据
    27         if(i==1)
    28         {
    29         //1.father
    30         Father f=new Father("向上转型的父类");
    31         //向上转型
    32         rtn=f;
    33         }
    34         else
    35         {
    36         //2.Son
    37         Son s=new Son();
    38         rtn=s;
    39         }
    40         return rtn;
    41     }
    42 }
    View Code

    Test类代码:

     1 package org.hanqi.pn0120;
     2 
     3 public class Testjicheng {
     4 
     5     public static void main(String[] args) {
     6         // TODO Auto-generated method stub
     7 
     8         Father f=new Father("父亲");
     9         //f.setName("父亲");
    10         f.setAge(50);
    11         System.out.println("名字是:"+f.getName()+" 年龄是:"+f.getAge());
    12         f.work();
    13         System.out.println();
    14         Son s=new Son();
    15         //s.setName("儿子");
    16         s.setAge(20);
    17         System.out.println("名字是:"+s.getName()+" 年龄是:"+s.getAge());
    18         s.work();
    19         s.sing();
    20         System.out.println();
    21         //转型
    22         //向上转型   由子类转向父类     即用父类对象实现子类方法
    23         Father f1=new Son();
    24         System.out.println("名字是"+s.getName());
    25         f1.work();//如果被子类重写了,就会调用子类的方法
    26         System.out.println("向下转型");
    27         //向下转型   由父类转向子类     即将父类方法转换成子类对象并实现子类方法,必须先做向上转型
    28         Son s1=(Son)f1;
    29         s1.work();
    30         System.out.println();
    31         //向上转型常用方式先向上转型Object再向下转型
    32         Father f2=(Father)Son.getData(1);//想调用子类方法就调用子类想调用父类方法就调用父类
    33         f2.work();
    34         
    35         
    36     }
    37 
    38 }
    View Code

  • 相关阅读:
    CSS使用position:sticky 实现粘性布局
    【笔记】原生JS实现验证框架 checkFun
    jQuery与vue分别实现超级简单的绿色拖动验证码功能
    vue从入门到进阶:Vuex状态管理(十)
    vue从入门到进阶:vue-router路由功能(九)
    vue从入门到进阶:渲染函数 & JSX(八)
    vue从入门到进阶:自定义指令directive,插件的封装以及混合mixins(七)
    vue从入门到进阶:组件Component详解(六)
    vue从入门到进阶:过滤器filters(五)
    vue从入门到进阶:Class 与 Style 绑定(四)
  • 原文地址:https://www.cnblogs.com/beens/p/5256692.html
Copyright © 2011-2022 走看看