zoukankan      html  css  js  c++  java
  • 方法的覆盖

    我们先创建一个动物类

    1 package 方法的覆盖;
    2 //动物类
    3 public class Animal {
    4 
    5     public void move(){
    6         System.out.println("动物在移动");
    7     }
    8 }

    然后再创建一个类去继承它

    1 package 方法的覆盖;
    2 //猫科类
    3 public class Cat extends Animal{
    4       
    5     public void move(){
    6         System.out.println("动物在移动");
    7     }
    8 }
     1 package 方法的覆盖;
     2 
     3 /**
     4  * 1.方法的覆盖又被称为方法的重写,英文叫override
     5  * 
     6  * 2.什么时候使用方法重写? 
     7  *     *当父类中的方法已经无法满足当前子类的业务需求,
     8  *      有必要将父类继承过来的方法进行重新编写,
     9  *      这个重新编写的过程称为方法重写/方法覆盖。 
    10  *   3.什么条件发生后会发生重写? *方法重写发生在继承关系的父子类之间
    11  *      *方法名相同,返回值类型相同,形参列表相同 
    12  *      *例:在重写的时候void move ()这三个都不能变 
    13  *      *访问权限不能更低,可以更高。
    14  *      *抛出异常不能更多,可以更少。
    15  *   4.建议复制粘贴写
    16  *   5.注意:
    17  *      私有方法不能继承,所以不能覆盖。
    18  *      构造方法不能继承,所以不能覆盖。
    19  *      静态方法不存在覆盖。
    20  *      覆盖只针对方法不谈属性
    21  */
    22 public class User {
    23     public static void main(String[] args) {
    24         // 创建动物对象
    25         Animal a = new Animal();
    26         a.move();
    27 
    28         // 创建猫科类动物对象
    29         Cat c = new Cat();
    30         c.move();
    31 35     }
    36 }

    运行后是两行“动物在移动”的结果

    如果我们想要让猫类在继承的情况下输出”猫在走路“我们要将猫类代码改成

    1 package 方法的覆盖;
    2 //猫科类
    3 public class Cat extends Animal{
    4       
    5     public void move(){
    6         System.out.println("猫在走猫步");
    7     }
    8     
    9 }

    它就能覆盖继承的代码结果就是

    但我们要注意覆盖的代码必须遵从以下规则

    *方法名相同,返回值类型相同,形参列表相同
    *例:在重写的时候void move ()这三个都不能变

    *私有方法不能继承,所以不能覆盖。
    * 构造方法不能继承,所以不能覆盖。
    * 静态方法不存在覆盖。

  • 相关阅读:
    灌溉 最小生成树
    queue的应用uva540
    大数相加
    对于jquery实现原理的浅谈
    div+CSS实现页面的布局要点记录
    spring注解注入的学习
    jsp内置对象学习记录
    web应用的乱码解决
    新发现:排序算法时间复杂度只有O(3n),命名为"wgw"排序法
    java编写的Http协议的多线程下载器
  • 原文地址:https://www.cnblogs.com/longlonglonglong/p/10902313.html
Copyright © 2011-2022 走看看