当前位置 : 主页 > 编程语言 > java >

【Java -- 基础】方法重写(Override)& 重载(Overload)

来源:互联网 收集:自由互联 发布时间:2022-06-22
前言 在 Java 中,作为三大特性之一的多态特性是十分重要,特别是其表现形式:方法重载(Overload)、方法重写(Override) 1. 方法重载(Overload) 具体使用 public class Test { // 类定义 st

前言

在 Java 中,作为三大特性之一的多态特性是十分重要,特别是其表现形式:方法重载(Overload)、方法重写(Override)

1. 方法重载(Overload)

【Java -- 基础】方法重写(Override)& 重载(Overload)_方法重载

  • 具体使用
public class Test {

// 类定义
static abstract class Human {
}

// 继承自抽象类Human
static class Man extends Human {
}

static class Woman extends Human {
}

// 定义的重载方法(方法名相同,但参数列表不同(此处是类型不同))
public void sayHello(Human guy) {
System.out.println("hello,guy!");
}

public void sayHello(Man guy) {
System.out.println("hello gentleman!");
}

public void sayHello(Woman guy) {
System.out.println("hello lady!");
}

// 测试代码
public static void main(String[] args) {
Human man = new Man();
Man woman = new Woman();
Test test = new Test();

test.sayHello(man);
test.sayHello(woman);
}
}

// 运行结果
hello,guy!
hello gentleman!

2. 方法重写(Override)

【Java -- 基础】方法重写(Override)& 重载(Overload)_方法重载_02

  • 具体使用
// 定义类
class Human {
public void sayHello(){
System.out.println("Human say hello");

}
}

// 继承类Human 并 重写sayHello()
class Man extends Human {
@Override
protected void sayHello() {
System.out.println("man say hello");

}
}

class Woman extends Human {
@Override
protected void sayHello() {
System.out.println("woman say hello");

}
}

// 测试代码
public static void main(String[] args) {

// 情况1
Human man = new man();
man.sayHello();

// 情况2
man = new Woman();
man.sayHello();
}
}

// 运行结果
man say hello
woman say hello

// 原因解析
// 通过多态,调用了子类中复写的sayHello()

3. 二者对比 & 区别

【Java -- 基础】方法重写(Override)& 重载(Overload)_java_03


网友评论