• java 中重载(Overload)和重写(Override)的区别


    首先重载重写是应用于两个不同场景下面的两种不同的手段:

    两者各自的特征:

    重载(Overload):首先是位于一个类之中或者其子类中,具有相同的方法名,但是方法的参数不同,返回值类型可以相同也可以不同。

    (1):方法名必须相同

    (2):方法的参数列表一定不一样。

    (3):访问修饰符和返回值类型可以相同也可以不同。

    其实简单而言:重载就是对于不同的情况写不同的方法。 比如,同一个类中,写不同的构造函数用于初始化不同的参数。

    下面是演示重载的代码:

     1 package com.hone.overrideAdnOverload;
     2 
     3 public class Animal {
     4     public void bark(){
     5         System.out.println("animal can bark");
     6     }
     7     
     8     public void bark(String s){
     9         System.out.println("animal"+ s +"can bark");
    10     }
    11     
    12     
    13     public void bark(int i){
    14         System.out.println("The animal number "+i+" can bark");
    15     }
    16     
    17     public static void main(String[] args) {
    18         Animal animal=new Animal();
    19         animal.bark(1);
    20     }
    21 }

    2:重写:

    重写(override):一般都是表示子类和父类之间的关系,其主要的特征是:方法名相同,参数相同,但是具体的实现不同。

    重写的特征:

    (1):方法名必须相同,返回值类型必须相同

    (2):参数列表必须相同

    (3):访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明为protected。

    (4):子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为private和final的方法。

    (5):构造方法不能被重写,

    简单而言:就是具体的实现类对于父类的该方法实现不满意,需要自己在写一个满足于自己要求的方法。

    1 public class Animal {
    2     
    3     public void bark(){
    4         System.out.println("animal can bark");
    5     }
    6
     1 package com.hone.overrideAdnOverload;
     2 
     3 public class Dog extends Animal{
     4     
     5     public void bark(){
     6         System.out.println("Dog can bark");
     7     }
     8 
     9     public static void main(String[] args) {
    10         Dog dog=new Dog();
    11         dog.bark();
    12     }
    13 }

    重写:就是子类对于父类的相应的方法的具体实现不满意,需要按照自己的要求来实现自己的需求。

  • 相关阅读:
    常见排序算法导读(8)[堆排序]
    常见排序算法导读(7)[希尔排序]
    常见排序算法导读(6)[快排序]
    常见排序算法导读(5)[冒泡排序]
    常见排序算法导读(4)[直接插入排序]
    UI基础
    iOS8之后CoreLocation定位的使用
    关于什么时候用pop什么时候用dismiss
    控制台输出文字改中文
    Quartz2D使用
  • 原文地址:https://www.cnblogs.com/xiaxj/p/6802866.html
Copyright © 2020-2023  润新知