3.1、继承的基本概念
观察以下的两个类
Person类:
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;
}
}
Student类:
class Student {
private String name;
private int age;
private String school;
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;
}
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
}
从这样的两个类中可以发现,代码的重复过多,直接从Student类中就可以发现重复的代码。
因为按照之前所学的概念,如果要定义这样的类,则只能才用这种方式,从实际中可以发现学生是一个人,学生比人多了一个属性,两个方法,也就是说学生要比人的定义更多,那么这个时候就可以使用继承的概念:
继承:就是扩展已有类的功能,在继承中分为子类和父类,父类有时候又称为超类(super class)、子类有时候也称为派生类。
继承的基本语法:
class 子类 extend 父类{}
了解了语法之后,下面来看一下,如何实现一个基本的继承。
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{
}
public class Demo00 {
public static void main(String args[]) {
Student stu = new Student();
stu.setName("张三");
stu.setAge(30);
System.out.println("姓名:"+ stu.getName());
System.out.println("年龄:"+ stu.getAge());
}
}
以上的代码只是维持了父类中的内容,那么子类实际上也可以扩充父类的内容
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 Demo00 {
public static void main(String args[]) {
Student stu = new Student();
stu.setName("张三");
stu.setAge(30);
stu.setSchool("清华大学");
System.out.println("姓名:"+ stu.getName());
System.out.println("年龄:"+ stu.getAge());
System.out.println("学校:"+ stu.getSchool());
}
}
转载请注明来源