子类的方法的名字,返回类型,参数和父类的方法一样,子类就能覆盖父类的这个方法
(重写了之后父类的这个方法不受影响,父类的对象调用这个方法还是父类的这个方法,不是子类重写的方法)
细节:
1.子类的方法的名和形参列表必须和父类一样
2.子类的方法的返回类型和父类一样或者是父类的子类
父:public Object getinfo(){} 子:public String getinfo(){}
String 是 Object的子类
3.子类方法不能缩小父类方法的权限(可以扩大访问权限)
【public>protect>默认>private】
package Override_;
public class OverrideExer {
public static void main(String[] args) {
Person person = new Person("大明",18);
System.out.println(person.say());
Student student = new Student("小明",10,"112233",60);
System.out.println(student.say());
}
}
class Person{
private String name;
private int age;
//构造器
public Person(String name, int age) {
this.name = name;
this.age = age;
}
//公开的setXX和getXX来设置和得到私有属性
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;
}
//输出详细信息
public String say(){
return "名字为:"+name+" 年龄为:"+age;
}
}
class Student extends Person{
private String id;
private int score;
//构造器
public Student(String name, int age, String id, int score) {
super(name, age);//自动调用父类的构造器
this.id = id;
this.score = score;
}
public String say(){
// return "名字为:"+getName()+" 年龄为:"+getAge()+" id为:"+id+" 分数为:"+score;
return super.say()+" id为:"+id+" 分数为:"+score;//super调用父类的say方法,比上面的内行简洁
}
}
512

被折叠的 条评论
为什么被折叠?



