继承
继承
class Person { //person类 private String name; private int age; public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } public String getName() { return this.name; } public int getAge() { return this.age; } }
class Student extends Person { // Student类继承了Person类 private String school; // 子类的属性 public void setSchool(String school) { this.school = school; } public String getSchool() { return this.school; } }
public class TestDemo { public static void main(String args[]) { Student stu = new Student(); // 实例化的是子类 stu.setName("张三"); // Person类定义 stu.setAge(20); // Person类定义 stu.setSchool("清华大学"); // Student类扩充方法 System.out.println("姓名:" + stu.getName() + ",年龄:" + stu.getAge() + ",学校:" + stu.getSchool()); } }
student类继承person类,实例化一个student类对象后,可以直接调用父类中权限为public的成员变量或者方法。
除此之外,在子类中可以扩展新方法,或者重写父类方法。
继承存在的几点限制:
1.每个子类只能继承一个父类,不能多重继承,但是可以多层继承
class A {}
class B extends A {}
class C extends B {}
像这样,C就同时继承了A,B中的方法
2.在实例化子类对象的时候,会首先调用父类无参构造函数,然后再运行子类构造函数。如果父类是有参构造,则必须在子类中用super()调用指定参数构造方法,如:super("ab") 且super调用父类构造的时候,一定要放在构造方法首行
务实,说实话!