• Lesson_9 上课笔记 多态


    2013-01-19  Lesson_9 多态

     1 /***********************************************************
     2  *                 Lesson_9
     3  *                 
     4  *                   多态
     5  *                 2013-01-19
     6  *              note by CocoonFan
     7  * *********************************************************
     8  * *********************************************************
     9  *
    10  *     一.方法的覆盖 -- 多态
    11  *       1.前提:一定要有继承
    12  *       2.子类的方法和父类的方法名相同,参数不同就构成方法的重载
    13  *    3.如果子类的方法和父类的方法完全一样就构成了方法的覆盖(override)
    14  *    4.父类引用指向子类对象,即父类对象调用子类"覆盖"的方法(多态)
    15  *
    16  * *********************************************************/
    17 
    18 public class Lesson_9 {
    19     public static void main(String[] args) {
    20         ParentClass parentClass = new ParentClass();
    21         parentClass.fun();//输出:这是父类的方法。
    22         
    23         ChildClass childClass = new ChildClass();
    24         //如果子类中有自己的方法则调用自己的相应的方法,没有则调用父类的
    25         childClass.fun();//输出:这是子类的方法。
    26         //childClass.showChildInfo();
    27         
    28         //所有的经理都是员工,但是不是所有的员工都是经理
    29         //父类引用调用子类对象,即父类对象调用子类覆盖过的方法
    30         //ChildClass childClass2 =new ParentClass();//出错!
    31         ParentClass parentClass2 = new ChildClass();
    32         parentClass2.fun();//输出:这是子类的方法。
    33         parentClass2.showParentInfo();//仍然可以调用父类中没有被覆盖的方法
    34         //parentClass2.showChildtInfo();//错误:调用子类没有覆盖的方法会出错
    35         
    36     }
    37 }
    38 
    39 class ParentClass{
    40     public void fun(){
    41         System.out.println("这是父类的fun方法。");
    42     }
    43     public void showParentInfo(){
    44         System.out.println("我是父亲");
    45     }
    46     
    47 }
    48 class ChildClass extends ParentClass{
    49     
    50     @Override
    51     public void fun(){//子类的方法覆盖父类的方法
    52         System.out.println("这是子类的fun方法。");
    53     }
    54     
    55     public void showChildInfo(){
    56         //super.fun();//调用父类的方法
    57         //this.fun();//调用子类的方法
    58         System.out.println("我是儿子");
    59     }
    60 }
  • 相关阅读:
    MySQL数据库服务器的架设
    Ubuntu 16.04 LTS软件包管理基本操作
    2个 List<T>进行数据合并
    创建 cachingConfiguration 的配置节处理程序时出错: 未能加载文件或
    【转】.gitignore失效的解决办法
    【转】码农提高工作效率
    【转】从零开始编写自己的C#框架(7)——需求分析
    C#获取文件的绝对路径
    【转】类中如何引用server.MapPath()
    c# 运行时替换某文件源代码(将XML 转换成 某个枚举并写入源文件)
  • 原文地址:https://www.cnblogs.com/CocoonFan/p/2869154.html
Copyright © 2020-2023  润新知