继承是指扩充一个类已有的功能。在继承结构中,很多情况下会把子类称为派生类,把父类成为超类(SuperClass);
1、基本实现例子:
package com.mydemo;
// 创建一个“PersonDemo”类
public class PersonDemo {
public static void main(String args[]) {
Student stu = new Student();
stu.setName("张三");
stu.setAge(18);
stu.setSchool("清华");
System.out.println("姓名:" + stu.getName() +
"、年龄:" + stu.getAge() +
"、学校:" + stu.getSchool());
}
}
// 定义一个“人”类
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;
}
}
运行结果:
姓名:张三、年龄:18、学校:清华
2、【supe】明确调用父类指定构造方法的例子:
package com.mydemo;
// 创建一个“PersonDemo”类
public class PersonDemo {
public static void main(String args[]) {
Student stu = new Student("张三", 18, "清华");
System.out.println(stu.getInfo());
}
}
// 定义一个“人”类
class Person {
private String name; // 姓名
private int age; // 年龄
/**
* 构造方法
* @param name
* @param age
*/
public Person(String name, int age){
this.name = name;
this.age = 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;
/**
* 子类构造
* @param name
* @param age
* @param school
*/
public Student(String name, int age, String school){
super(name, age); // 明确调用父类有参构造
this.school = school;
}
public String getInfo(){
// return "姓名:" + this.name + // 因为父类使用private声明,无法访问---不允许直接访问非私有操作
// "、年龄:" + this.age + // 因为父类使用private声明,无法访问---不允许直接访问非私有操作
// "、学校:" + this.school;
return "姓名:" + getName() +
"、年龄:" + getAge() +
"、学校:" + this.school;
}
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
}
运行结果:
姓名:张三、年龄:18、学校:清华