继承的定义与使用

 1 class Person{
 2     private String name;
 3     private int age;
 4     private String school; 
 5     public void setName(String name){
 6         this.name=name;
 7     }
 8     public String getName(){
 9         return this.name;
10     }
11     public void setAge(int age){
12         this.age=age;
13     }
14     public int getAge(){
15         return this.age;
16     }
17     public void setSchool(String school){
18         this.school=school;
19     }
20     public String getSchool(){
21         return this.school;
22     }
23 }
24 class Student extends Person{//定一个子类
25     private String school;//扩充新属性
26     public void setSchool(String school){
27         this.school=school;
28     }
29     public String getSchool(){
30         return this.school;
31     }
32 }
33 public class Newbegin{
34     public static void main(String args[]) {
35         Student stu=new Student();//实例化子类
36         stu.setName("聊天");//此方法student类没有定义
37         stu.setAge(6);
38         stu.setSchool("家里蹲大学");
39         System.out.println("姓名:"+stu.getName()+",年龄:"+stu.getAge()+",学校:"+stu.getSchool());
40     }
41 }

继承一个类,并且可以实现方法的扩充

继承的限制

1.子类对象在进行实例化前一定先实例化父类对象,默认调用父类的构造方法后,在调用子类的构造方法;(有父才有子)

2.java中只允许单继承不允许多继承,可以使用多层继承。

Java不允许多重继承,当允许多层继承

3.在进行继承的时候子类会继承父类的所有结构,但是这个时候我们要注意的是,所有非私有操作属于显示继承(直接调用),所有私有操作属于隐式继承(通过其他形式调用,set,get)

 1 class Person{
 2     private String name;
 3     public void setName(String name){
 4         this.name=name;
 5     }
 6     public String getName(){
 7         return this.name;
 8     }
 9 }
10 class Student extends Person{//定一个子类
11     public void fun(){
12         System.out.println(getName());
13     }
14 }
15 public class Newbegin{
16     public static void main(String args[]) {
17         Student stu=new Student();
18         stu.setName("张三");
19         System.out.println(stu.getName());
20         stu.fun();
21     }
22 }

总结:

1.继承的语法和目的

2.子类对象的实例化流程,先父后子

3.继承的限制:不允许多重继承,当允许多层继承

原文地址:https://www.cnblogs.com/Tony98/p/10395879.html