在已有类的基础上进行扩充,
继承中有几个主要点:
父类中私有属性或的能被继承,但是不能被直接访问,而子类只能通过geter seter 进行访问 。
方法的重载overload, 方法的重写 override 两个的比较
产生的情况 override 发生在继承中 overload 在同一个类中
特点 在重写的过程中不能把方法的 相同的方法名字,
访问修饰符设置成更加严的 不同的参数个数
返回值,方法名,参数类表 参数的类型与访问权限无关
和父类一样 与返回值无关
重写过程中 当父类中 方法的类型是 private 子类中把他的访问权限扩充为 public default 着不能称为重写
父类中调用的方法将会是被子类重写的方法,如果没被重写,不管你函数相同,始终会去调用父类中的方法
*重写过的*
class Person_{
public void f1(){
System.out.println("person_ zhong de f1");
}
public int age=12;
public void f2(){
//System.out.println(this.age);
this.f1();
}
}
class Student_ extends Person_{
public int age=20;
public void f1(){
System.out.println("Student_ zhong de f1"+age);
}
}
public class OverrideDemo002 {
public static void main(String agrs[]){
new Student_().f2();
}
}
运行的结果:Student_ zhong de f1"20
没重写过的 class Person_{ private void f1(){
System.out.println("person_ zhong de f1");
}
public int age=12;
public void f2(){
//System.out.println(this.age);
this.f1();
}
}
class Student_ extends Person_{
public int age=20;
public void f1(){
System.out.println("Student_ zhong de f1"+age);
}
}
public class OverrideDemo002 {
public static void main(String agrs[]){
new Student_().f2();
}
}
运行的结果: person_ zhong de f1
覆写 是发生在继承中,而且必须是能被访问的