1.重写
与父类方法的方法名和参数一样,返回类型可以相同或者是其子类,访问修饰符的权限不能低于原来方法的权限。(public ->protected ->默认 ->private)
2.重载
参数列表不同外,其他必须相同。
3.对比表格
4.手撕代码
Person.java
package com.gmu.override_;
public class Person {
/*
编写一个 Person 类,包括属性/private(name 、age),构造器、方法 say(返回自我介绍的字符串)。
*/
private String name;
private int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String say() {
return "大家好,我叫" + name + " 今年" + age + "岁";
}
//设置访问私有属性的方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
Student.java
package com.gmu.override_;
public class Student extends Person {
/*
编写一个 Student 类,继承 Person 类,增加 id、score 属性/private,以及构造器,定义 say 方法(返回自我介绍的信息)。
*/
private String id;
private double score;
//构造器
public Student(String id, double score) {
this.id = id;
this.score = score;
}
public Student(String name, int age, String id, double score) {
super(name, age);
this.id = id;
this.score = score;
}
public String say(){
return "大家好,我叫" + getName() + " 今年" + getAge() + "岁 学号"+ id +" 成绩" + score;
}
}
主程序 (main.java
)
package com.gmu.override_;
public class main {
public static void main(String[] args) {
/*
在 main 中,分别创建 Person 和 Student 对象,调用 say 方法输出自我介绍
*/
Person person = new Person("小明",25);
System.out.println(person.say());
Student student = new Student("张华",18,"20212133",98);
System.out.println(student.say());
}
}