Java基础第10讲-面向对象之方法的重写和重载

时间:2021-07-14 16:15:04

1、方法的重载

方法的重载是指一个类中可以定义有相同的名字,但参数不同的多个方法。调用时,会根据不同的参数表选择对应的方法。方法的重载即:同名不同参

1.1、方法重载的补充说明

  • 参数不同指的是参数的类型不同或是参数的个数不同
  • 构造方法也可以重载

1.2、示例:方法重载同名不同参

public class Student {

public void intro(String name) {
System.out.println("我叫" + name);
}

public void intro(int age) {
System.out.println("我今年" + age + "岁");
}

public void intro(String name, int age) {
System.out.println("我叫" + name + "今年" + age + "岁");
}
}


 

1.3、示例:重载构造方法

public class Student {

private String name; // 姓名
private int age; // 年龄

public Student(String name) {
this.name = name;
}

public Student(int age) {
this.age = age;
}

public Student(String name, int age) {
this.name = name;
this.age = age;
}

public void intro() {
System.out.println("我叫" + name + "今年" + age + "岁");
}
}


2、方法的重写

方法重写基于继承,子类继承父类,子类可以调用父类的方法,同时子类也可以重写父类中的方法,来实现和父类中不同的业务处理逻辑。重写要求子类中方法与父类中的方法名称仙童,参数相同,参数类型相同。当子类调用该方法时,基类中的方法则被覆盖。方法重写即:重写父类方法,同名也同参

2.1、示例:动物会叫,叫声各不相同

动物类

public class Animal {

public void speek(){
System.out.println("动物都会叫");
}
}


狗类,继承自动物类

class Dog extends Animal {

/**
* 重写父类的speek方法
*/
@Override
public void speek() {
System.out.println("旺旺旺...");
}
}



猫类,继承自动物类

class Cat extends Animal {

/**
* 重写父类的speek方法
*/
@Override
public void speek() {
System.out.println("喵喵喵...");
}
}