Java是单继承,只能继承一个父类,但是可以实现多个接口
继承的子类不能直接访问父类中的私有属性,只能通过get和set方法来访问
在继承的操作中,子类对象在实例化之前必须首先调用父类中的构造方法后再调用子类自己的构造方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| class person{ private String name; private int 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; } }
class student extends person{ private String school;
public String getSchool() { return school; }
public void setSchool(String school) { this.school = school; } }
public class extends_demo {
public static void main(String[] args) { // TODO 自动生成的方法存根 student person_1 = new student(); person_1.setName("张三"); person_1.setAge(10); person_1.setSchool("涵三中"); System.out.println("姓名:"+person_1.getName()+"\n"+"年龄:"+person_1.getAge()+"\n"+"学校:"+person_1.getSchool()); }
}
|
方法的覆写
方法的覆写就是指子类定义了与父类中同名的方法,但是在方法覆写时候必须考虑到权限,即被子类覆写的方法不能拥有比父类方法更加严格的访问权限。
访问权限:private default public private<default<public
如果在父类中使用public定义的方法,则子类的访问权限必须是public,否则无法编译
如果将父类的一个方法定义成private访问权限,在子类中将此方法声明位default访问权限,这不算是覆写
调用父类的属性时,直接使用super.XXX
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| class person{ private String name; private int 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; } //方法:print void print(){ //定义一个默认访问权限的方法 System.out.println("Person---->void print()"); } }
class student extends person{ private String school;
public String getSchool() { return school; }
public void setSchool(String school) { this.school = school; } //方法:print public void print(){ //覆写父类中的方法,扩大了权限 System.out.println("student---->void print()"); } }
public class extends_demo {
public static void main(String[] args) { // TODO 自动生成的方法存根 student person_1 = new student(); person_1.setName("张三"); person_1.setAge(10); person_1.setSchool("涵三中"); System.out.println("姓名:"+person_1.getName()+"\n"+"年龄:"+person_1.getAge()+"\n"+"学校:"+person_1.getSchool()); new student().print(); }
}
|
全文 >>