zoukankan      html  css  js  c++  java
  • java学习笔记(十一):重写(Override)与重载(Overload)

    重写(Override)

    重写是子类对父类的允许访问的方法的进行重新编写, 但是返回值和形参都不能改变。

    实例

     1 class Animal{
     2     public void run(){
     3         System.out.println("Animal Run");
     4     }
     5 }
     6 
     7 class Dog extends Animal{
     8     public void run(){
     9         System.out.println("Dog Run");
    10     }
    11 }
    12 
    13 public class Test{
    14     public static void main(String[] args){
    15         Animal animal = new Animal();//创建Animal对象
    16         Dog dog = new Dog();         //创建Dog对象
    17 
    18         animal.run();   //执行Animal类的方法
    19         dog.run();      //执行Dog类的方法
    20     }
    21 }

    运行输出:

    Animal Run
    Dog Run

    重载(overloading)

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

    实例

     1 public class Test{
     2     //重载方法1 test1
     3     public int test(){
     4         System.out.println("test1");
     5         return 1;
     6     }
     7     //重载方法2 test2
     8     public void test(int a){
     9         System.out.println("test2");
    10     }
    11 
    12     //以下两个参数类型顺序不同
    13     //重载方法3 test3
    14     public String test(String s,int a){
    15         System.out.println(s);
    16         return "return test3";
    17     }
    18 
    19     //重载方法4 test4
    20     public String test(int a,String s){
    21         System.out.println(s);
    22         return "return test4";
    23     }
    24 
    25     public static void main(String[] args){
    26         Test t = new Test();
    27         System.out.println("-----------------------");
    28         System.out.println(t.test());
    29         System.out.println("-----------------------");
    30         t.test(1);
    31         System.out.println("-----------------------");
    32         //
    33         System.out.println(t.test(1,"test3"));
    34         System.out.println("-----------------------");
    35         System.out.println(t.test("test4",1));
    36     }
    37 }

    运行输出:

    -----------------------
    test1
    1
    -----------------------
    test2
    -----------------------
    test3
    return test4
    -----------------------
    test4
    return test3

    @override

    判断是否是方法覆盖,在方法上添加@override标签后,如果这个方法是覆盖了父类的覆盖方法,则编译通过,如果不是则报错

    由于fly1()方法不是覆盖方法,所以编译时报错

  • 相关阅读:
    shell编程介绍
    第一章作业
    jenkins介绍与操作
    gitlab介绍与操作
    github介绍与操作
    git介绍与操作
    zabbix监控tomcat与安全规范
    js-20170605-基本语法
    webstorm激活方法
    mac的一些基本设置(分享篇)
  • 原文地址:https://www.cnblogs.com/zylq-blog/p/7743351.html
Copyright © 2011-2022 走看看