zoukankan      html  css  js  c++  java
  • Java——方法的重写(覆盖)

    2.2方法的重写(覆盖)(override,orverwrite)

    2.2.1 什么时候方法要进行重写?

    如果父类中的方法已经无法满足当前子类的业务需求,需要将父类中的方法进行重新写一遍。就是要改变父类的行为。

    注意:子类如果重写父类中的方法之后,子类对象一定调用的是重写之后的方法。

    2.2.2 发生方法覆盖的条件

    ①发生在具有继承关系的两个类之间

    ②必须具有相同的方法名,相同的返回值类型,相同的参数列表.

    ③重写的方法不能比被重写的方法拥有更低的访问权限。

    ④重写的方法不能比被重写的方法抛出更宽泛的异常。(异常机制再讲。)

    ⑤私有的方法不能被覆盖。(多态之后讲)

    ⑥构造方法无法被覆盖。因为构造方法无法被继承。

    ⑦静态的方法不存在覆盖。(多态之后讲)

    ⑧覆盖指的是成员方法,和成员变量无关。

    继承最基本的作用:代码重用。 继承最重要的作用:方法可以重写。

    2.2.3 方法的重载与重写的区别

    方法重载(Overload)的条件:

    ①方法名称相同

    ②方法参数类型、个数、顺序至少有一个不同

    ③方法的返回类型可以不同,因为方法重载和返回类型没有任何关系

    ④方法的修饰符可以不同,因为方法重载和修饰符没有任何关系

    ⑤方法重载只出现在同一个类中

    方法覆盖(Override)的条件:

    ①必须要有继承关系

    ②覆盖只能出现在子类中,如果没有继承关系,不存在覆盖,只存在重载

    ③在子类中被覆盖的方法,必须和父类中的方法完全一样,也就是方法名,返回类型、参数列表,完全一样

    ④子类方法的访问权限不能小于父类方法的访问权限

    ⑤子类方法不能抛出比父类方法更多的异常,但可以抛出父类方法异常的子异常

    ⑥父类的静态方法不能被子类覆盖

    ⑦父类的私有方法不能覆盖

    ⑧覆盖是针对成员方法,而非属性

    注意:两个方法要同为static或同为非static

    public class Test01{

           public static void main(String[] args){

                  //创建子类对象

                  Cat c = new Cat();

                  //调用方法

                  c.move();

                  Animal a = new Animal();

                  a.move();

           }

    }

    //父类:动物

    class Animal{

           //成员方法

           public void move(){

                  System.out.println("动物在移动!");

           }

    }

    //子类:猫

    class Cat extends Animal{

           //Cat的move方法应该输出:猫在走猫步!

           //Animal中的move方法已经无法满足Cat了。

           //所以要在Cat类中对Animal类中的move方法进行重新定义(方法的覆盖,方法的重写,Overwrite,Override)

           public void move(){

                  System.out.println("猫在走猫步!");

           }

    }

     

  • 相关阅读:
    HTML5手机APP开发入(5)
    HTML5手机APP开发入(4)
    HTML5手机APP开发入(3)
    HTML5手机APP开发入门(2)
    五一干货来袭!开源Moon.Orm标准版发布!
    你不知道的HttpHandler相关知识
    我们就专心做一件事情---数据处理框架
    jQuery Mobile案例,最近用Moon.Web和Moon.Orm做了一套系统
    谈谈字符编码的问题
    一起玩玩面试题(第一关)---五道题估计你要挂四道
  • 原文地址:https://www.cnblogs.com/superjishere/p/11809949.html
Copyright © 2011-2022 走看看