zoukankan      html  css  js  c++  java
  • java实现多态 方法的重写和重载的区别

    1.方法的重写

    思路:先写一个父类People,在类中定义一个 print方法 ,然后写一个子类 Student 继承父类,重写print方法。

    //父类

    class People{

      public void print(){
        System.out.println("这是父类的print方法!");

      }

    }

    //子类 继承父类

    class Student extends People{
      public void print(){

        System.out.println("这是子类的print方法!");  

      }

    }

    //测试类

    public class Test{

      Student t=new Student(); 生成子类的对象

      t.print(); //子类对象 调用print方法

    }

    运行结果: 这是子类的print方法!

    分析:子类继承父类后重写父类的方法,子类对象调用时,调用的是子类的print方法。

    重点: 方法的重写,不改变方法的 返回值类型,参数列表;改变的只是方法中的内容,这是重写。

    备注:方法重写后,可用super.方法名();调用父类中未被重写的方法。

    2.方法的重载

    思路:先写一个父类People,在父类中定义多个方法名print相同,但参数列表或返回值类型不同的方法;子类继承People类。重载这些方法。

    public class People {
    String name; 
    int age;
    void print(){ 
    System.out.println("姓名:" +name+"年龄:" +age); 
    }
    void print(String a,int b){ 
    System.out.println("姓名:" +a+"年龄:"+b); 
    void print(String a,int b,intC){ 
    System.out.println("姓名:"+a+"年龄:" +b+"ID号:" +c); 
    }
    void print(String a,int b,doubleC){ 
    System.out.println("姓名:"+a+"年龄:" +b+"ID号:"+c); 

    }

    public class Test{
    publicstaticvoidmain(String args[]) 
    {Personpl=newPerson();
    p1.nanle="李明";
    p1.age=22;
    p1.print(); 
    p1.print("王小早",19); 
    p1.print("金波",18,100325); 
    p1.print("婉宁",25,110903); 

    }

    运行结果:

    姓名:李明年龄:22
    姓名:王小早年龄:l9
    姓名:金波年龄:18ID号:10 00325
    姓名:婉宁年龄:25ID号:110903

    分析:方法的重载,只要方法名相同,返回值类型和参数列表可以不痛。子类继承父类时,可根据返回值类型 和 参数列表的异同,来决定调用重载的哪个方法。

  • 相关阅读:
    测试面试题集-接口测试(9)
    测试面试题集-性能测试(8)
    测试面试题集-网络基础(7)
    测试面试题集-Python编程题(6)
    测试面试题集-Python列表去重(5)
    测试面试题集-生活物品测试:杯子、伞、钢笔、桌子、行李箱、电梯、洗衣机(4)
    测试面试题集-测试用例设计(3)
    测试面试题集-测试基础理论(2)
    解决在docker环境中拉取svn项目中含有中文名称的文件时拉取失败的问题
    redisTemplate之opsForHash()用法分析
  • 原文地址:https://www.cnblogs.com/mawei11/p/6819627.html
Copyright © 2011-2022 走看看