重载与重写的区别

函数重载(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("做作业");

}

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

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在...
    飞天_shine阅读 400评论 0 0
  • 重载与重写是完全不同的语法现象,区别如下所示: 重载: 是指在一个类中定义多个方法名相同但参数列表不同的方法,在编...
    黑夜的眸阅读 199评论 0 0
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,767评论 18 399
  • 最近上海两家民办小学挨收拾了。他们有点过份,招生时,让家长填问卷,居然连孩子爷爷奶奶的职务都要填。 你说吧,填个爸...
    箫十三郞阅读 196评论 0 0
  • 最近看了几部电影。 《一个叫欧维的男人决定去死》 人物:欧维。主题:狗带。梗概:中年老男人,亡妻,失业,毒舌,暴戾...
    季硕阅读 285评论 0 0