文章目录
- 1. 前言
- 2. 问题提出
- 3. 什么是继承
- 4. 继承的特点
1. 前言
继承是面向对象三大特性之一. Java的继承也是很复杂.
本篇文章先帮助大家理解继承的概念
2. 问题提出
先来看这两个类:
Student类:
public class Student {private String name;private int age;private String id;public void sleep(){System.out.println("睡觉");}public void study(){System.out.println("学习");}
}
Teacher类:
public class Teacher {private String name;private int age;private String id;public void sleep(){System.out.println("睡觉");}public void teach(){System.out.println("传道授业解惑");}
}
可以看到这两个类具有很多相同的属性和方法. 如果后面定义的类中也要用到这些属性,那么就需要再写一遍这些重复的代码. 为了解决这个问题,面向对象思想中提出了继承的概念,专门用来进行共性抽取,实现代码复用
3. 什么是继承
继承是面向对象三大特性之一.Java中的继承是面向对象编程中的一个重要概念,它允许一个类继承另一个类的属性和方法。在Java中,使用关键字extends
来实现继承。
因此可以在上面两个类的基础上,将重复的部分提取出来,定义一个Person类:
public class Person {private String name;private int age;private String id;public void sleep(){System.out.println("睡觉");}
}
只需要让Student类和Teacher类继承Person类,就可以不用写共有的属性和方法了,只需要写类中所特有的属性和方法即可. Student和Teacher都继承Person类,因此Student类和Teacher类可以成为Person的子类/派生类,而Person类称为父类/基类或超类
例如: Student类就可以改为这样
public class Student extends Person{public void study(){System.out.println("学习");}
}
注意:
- 子类会将父类中的成员变量或者成员方法继承到子类中了
- 子类继承父类之后,必须要新添加自己特有的成员,体现出与基类的不同,否则就没有必要继承
- 当类与类之间,存在相同(共性)的内容,并满足子类是父类中的一种,就可以考虑使用继承,来优化代码
4. 继承的特点
- Java只支持单继承,不支持多继承,但支持多层继承.多层继承:子类A继承父类B,父类B可以继承父类C,每一个类都直接或者间接的继承于Object类
- Java中所有的类都直接或者间接继承于Object类
- 子类只能访问父类中非私有(
非privite
)的成员
感谢你的观看!希望这篇文章能帮到你!
专栏: 《从零开始的Java学习之旅》在不断更新中,欢迎订阅!
“愿与君共勉,携手共进!”