美文网首页
重载与重写的区别

重载与重写的区别

作者: 沫晴er | 来源:发表于2017-09-08 19:21 被阅读0次

    函数重载(Overload):

    1.函数名称一样

    2.参数类型与参数个数不一样

    3.与返回值无关

    函数重写(Override):

    1.重写必须继承,重载不需要

    2.参数数目相同,参数类型兼容

    3.重写的方法修饰符大于等于父类的方法

    4.重写不可以抛出父类没有抛出的一般异常,可以抛出运行时异常

    重载案例

    public class test1 {

    public static void main(String[] args) {

    test1 test = new test1();

    System. out.println(test.sum(0.1, 0.5));

    System.out.println(test.sum(1, 5));

    System.out.println(test.sum("1", "2"));

    System.out.println(test.sum(5));

    }

    public double sum(double num1,double num2){

    return num1 + num2;

    }

    public int sum(int num1,int num2){

    return num1 + num2;

    }

    public String sum(String num1 ,String num2){

    return num1 + num2;

    }

    //个数不一样

    public String sum(int num1){

    return Math.abs(num1)+"";

    }

    }

    重写案例

    package com.lanou.obj;

    //子类拥有父类所有的非private修饰的属性和方法

    public class test02 {

    //封装 隐藏一些类的具体细节,提供公共方法来调用

    public static void main(String[] args) {

    Teacher t = new Teacher();

    t.age = 12;

    t.name = "小明";

    t.study();

    t.teach();

    //调用方法的顺序

    //自己-->父类-->父类的父类-->object

    //如果都不存在,报错

    }

    }

    class Person{

    int age;

    String name;

    void study(){

    System.out.println("学习");

    }

    }

    class Teacher extends Person {

    void teach(){

    System.out.println("教书");

    }

    }

    class Student extends Person{

    //方法重写

    //重写 1.继承 2.方法重写父类的方法

    //override //注解 //@override方法重写的注解

    void study(){

    super.study();//调用父类方法

    System.out.println("教师学习");

    }

    void doHomeWork(){

    System.out.println("做作业");

    }

    //场景 父类的方法的需求不满足子类的时候

    }

    相关文章

      网友评论

          本文标题:重载与重写的区别

          本文链接:https://www.haomeiwen.com/subject/qdsnjxtx.html