zoukankan      html  css  js  c++  java
  • 重写(Override)与重载(Overload)的区别(面试题)

    概念:重写(Override):是存在子父之间的关系,子类里定义的方法与父类里定义的方法具有相同的方法名以及相同的返回值和参数类型

      重写规则

          1、方法名形参列表相同;

          2、访问权限,子类大于等于父类;   

          3、返回值类型和声明异常类型子类小于父类;

    实例

     1 public class OverrideDemo{
     2    public static void main(String args[]){
     3       Animal b = new Dog(); // Dog 对象
     4       b.move(); //执行 Dog类的方法
     5    }
     6 }
     7 
     8 class Animal{
     9    public void move(){
    10       System.out.println("动物可以移动");
    11    }
    12 }
    13  
    14 class Dog extends Animal{
    15    public void move(){
    16       super.move(); // 应用super类的方法
    17       System.out.println("小狗可以跑和走");
    18    }
    19 }

    编译运行结果为:

          动物可以移动

          小狗可以跑和走        

    概念:重载(Overload):是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同

      重载规定:

          1、被重载的方法必须改变参数列表(参数个数或类型不一样);

          2、被重载的方法可以改变返回类型;

          3、被重载的方法可以改变访问修饰符;

          4、被重载的方法可以声明新的或更广的检查异常;

          5、方法能够在同一个类中或者在一个子类中被重载;

          6、无法以返回值类型作为重载函数的区分标准;

    实例:

     1 public class OverloadDemo {
     2     public int test(){
     3         System.out.println("test1");
     4         return 1;
     5     }
     6  
     7     public void test(int a){
     8         System.out.println("test2");
     9     }   
    10  
    11     //下面两个参数类型顺序不同
    12     public String test(int a,String s){
    13         System.out.println("test3");
    14         return "returntest3";
    15     }   
    16  
    17     public String test(String s,int a){
    18         System.out.println("test4");
    19         return "returntest4";
    20     }   
    21  
    22     public static void main(String[] args){
    23         OverloadDemo od = new OverloadDemo();
    24         System.out.println(od.test());
    25         od.test(1);
    26         System.out.println(od.test(1,"test3"));
    27         System.out.println(od.test("test4",1));
    28     }
    29 }
  • 相关阅读:
    pytest知识梳理
    linux服务器时间不同步解决
    python re 多行匹配模式
    nginx--知识梳理
    tomcat--知识梳理
    利用springboot 重定向到静态资源功能,下载一些文件文件
    调试C++代码内存释放,在VS2019控制台显示内存泄露
    C++Primer第五版 第九章 习题9.22
    nginx 配置中间证书
    云苍穹消息推送代码
  • 原文地址:https://www.cnblogs.com/luckyjcx/p/12268669.html
Copyright © 2011-2022 走看看