zoukankan      html  css  js  c++  java
  • 多态

    最终多态体现为父类引用变量可以指向子类对象。

    多态的前提是必须有子父类关系或者类实现接口关系,否则无法完成多态。

    在使用多态后的父类引用变量调用方法时,会调用子类重写后的方法。

    多态的定义格式:就是父类的引用变量指向子类对象

    父类类型  变量名 = new 子类类型();

    变量名.方法名();

     

    多态的优点

    • 1. 消除类型之间的耦合关系
    • 2. 可替换性
    • 3. 可扩充性
    • 4. 接口性
    • 5. 灵活性
    • 6. 简化性

    多态存在的三个必要条件

    • 继承
    • 重写
    • 父类引用指向子类对象

    当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。

    多态的好处:可以使程序有良好的扩展,并可以对所有类的对象进行通用处理。

     class Demo
     5     {
     6         List<Book> books = new List<Book>();
     7 
     8         /// <summary>
     9         /// 测试
    10         /// </summary>
    11         public void Test()
    12         {
    13             books.Add(new ComputerBook());
    14             books.Add(new JavaBook());
    15 
    16             foreach (Book item in books)
    17             {
    18                 if (item is ComputerBook)
    19                 {
    20                     ((ComputerBook)item).ByReading();
    21                 }
    22                 if (item is JavaBook)
    23                 {
    24                     ((JavaBook)item).ByReading();
    25                 }
    26             }
    27         }
    28     }
    29 
    30     /// <summary>
    31     /// 书类
    32     /// </summary>
    33     class Book
    34     {
    35         
    36     }
    37 
    38     /// <summary>
    39     /// 计算机书籍
    40     /// </summary>
    41     class ComputerBook : Book
    42     {
    43         /// <summary>
    44         /// 被阅读
    45         /// </summary>
    46         public void ByReading()
    47         {
    48             Console.WriteLine("我是计算机类书籍,被在校大学生使用。");
    49         }
    50     }
    51 
    52     /// <summary>
    53     /// Java书籍
    54     /// </summary>
    55     class JavaBook : Book
    56     {
    57         /// <summary>
    58         /// 被阅读
    59         /// </summary>
    60         public void ByReading()
    61         {
    62             Console.WriteLine("我是Java书籍,被在业Java程序员使用。");
    63         }
    64     }
  • 相关阅读:
    JVM虚拟机
    antd Table排序问题
    关于element-ui中el-container布满全局的问题!
    vue 安装css预处理器LESS
    mybatis官网
    Lombok安装及使用介绍
    thymeleaf中th:each的使用,遍历数组
    thymeleaf中th:text和th:utext的使用与区别
    SprongBoot项目的打包与启动
    SpringBoot简单学习
  • 原文地址:https://www.cnblogs.com/sy130908/p/11417403.html
Copyright © 2011-2022 走看看