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

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

  • 相关阅读:
    梯度下降算法实现
    windows10下Anaconda的安装与tensorflow、opencv的安装与环境配置
    在github创建用户
    看完教材不明白的问题
    自我介绍
    HDU 1098(条件满足 数学)
    HDU 1097(m次幂的个位数 规律)
    HDU 1046(最短路径 **)
    HDU 1045(炮台安置 DFS)
    HDU 1034(传递糖果 模拟)
  • 原文地址:https://www.cnblogs.com/mawei11/p/6819627.html
Copyright © 2011-2022 走看看