• java 重载和覆盖


    重载overload 和 覆盖override 是多态的两种表现形式。

    重载overload,发生在同一类中,相当于不同的方法,只是因为功能类似所以起了相同的名字,必须包含不同的参数可以使用不同的返回值类型。如代码:

     1 public class OverloadTest {
     2     
     3     public void loadTest(){
     4         System.out.println("loadTest第一个");
     5     }
     6     
     7     public void loadTest(String p_string){
     8         System.out.println("loadTest第二个");
     9     }
    10     
    11     public int loadTest(int p_time){
    12         System.out.println("loadTest第三个");
    13         return p_time + 100;
    14     }
    15     
    16     public String loadTest(int p_time, String p_str){
    17         System.out.println("loadTest第四个");
    18         return p_str;
    19     }
    20 
    21 }

    覆盖override,发生在子类中

    先要创建一个父类 OverrideTest

    1 public class OverrideTest {
    2     
    3     public void test1(){
    4         System.out.println("基类的方法");
    5     }
    6 
    7 }

    再创建一个子类去继承父类,可以对父类中的方法进行覆盖,顺便把main函数也写一起了。

     1 public class OverrideExtends extends OverrideTest {
     2     
     3     @Override
     4     public void test1() {
     5         // TODO Auto-generated method stub
     6 //        super.test1();
     7         System.out.println("子类继承之后覆盖后的方法");
     8     }
     9     
    10     public static void main(String[] args){
    11         
    12         OverrideTest ot = new OverrideExtends();
    13         ot.test1();
    14         
    15     }
    16 
    17 }

    这样的话,运行了之后,结果为“子类继承之后覆盖后的方法”,即子类中通过覆盖的方式将父类中的Test1方法进行了重写,使用的时候,就直接执行了子类中的方法。

    注意:

    1. 重写的时候,方法名称必须相同。

    2. 重写的时候,参数必须相同。

    3. 重写的时候,返回值必须相同。(或者都没有)

  • 相关阅读:
    学习进度(2)
    模拟退火 [JSOI2004]平衡点 / 吊打XXX
    快读快写 O3 优化
    卡特兰数(Catalan)公式、证明、代码、典例
    树状数组 :单点修改,区间查询
    倍增 [模板]最近公共祖先LCA
    对测 【模拟】
    对测 【离线DP+二分】
    模拟退火 (骗分算法)
    基础数论入门
  • 原文地址:https://www.cnblogs.com/kevinqinan/p/4482075.html
Copyright © 2020-2023  润新知