zoukankan      html  css  js  c++  java
  • 039_面向对象_12_方法的重写

    一、概念部分

      a)方法的重写(override):在子类中可以根据需要对从基类中继承来的方法进行重写。
    二、重写的特征 

      a)重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型。
      b)重写方法不能使用比被重写方法更严格的访问权限。(由于多态)

    三、方法重写和方法重载的区别

      很多人问重写和重载什么区别? 他们两个完全是两回事。除了名字都带一个“重”字之外。
      方法重载指的是:同一个类中,一个方法名对应了多个方法(形参列表(参数个数,类型及顺序)不同)
      方法的重写指的是:子类重写了父类的方法!

    四、演示示例

     

    package edu.aeon.test;
    /**
     * [说明]:测试继承及重写
     * @author aeon
     */
    public class Animal {
        String eye;
        public void run() {
            System.out.println("跑跑!");
        }
        public void eat() {
            System.out.println("吃吃!");
        }
        public void sleep() {
            System.out.println("zzzzz");
        }
        public Animal() {
            System.out.println("创建一个动物!");
        }
    }
    class Mammal extends Animal {
        public void taisheng() {
            System.out.println("我是胎生");
        }
    }
    /**
     * 重写父类的run方法
     * @author aeon
     *
     */
    class Bird extends Animal {
        @Override
        public void run() {
            //是否真的覆盖了父类的方法呢?没有、只是重写该方法的类重写了、何谈覆盖?
            super.run();
            System.out.println("鸟类既可以跑又可以飞呀!");
        }
        //还有其它自己独有的方法....
        public void eggSheng() {
            System.out.println("卵生");
        }
    }
    package edu.aeon.test;
    /**
     * [说明]:测试重写
     * @author aeon
     */
    public class Test {
        public static void main(String[] args) {
             Bird b = new Bird();
                b.run();
        }
    }

    测试结果截图:

      

     

    如有任何疑问可联系邮箱: 给我发邮件、或直接联系QQ:1584875179 || 点返回首页

  • 相关阅读:
    Linux学习33 crontab定时任务语法在线校验 上海
    python测试开发django175.bootstrap导航带下拉菜单的标签页标签页(navtabs) 上海
    python测试开发django172.jQuery 发送请求获取的数据设置为全局变量 上海
    team讨论有感
    蜕变(3)---模式
    uml建模的随想
    Bridge Strategy 和State的区别
    友元在模式中的运用
    Design&Pattern团队《设计模式在软件开发的应用》精华版
    面向对象乱弹(一)
  • 原文地址:https://www.cnblogs.com/aeon/p/9962608.html
Copyright © 2011-2022 走看看