java 面向对象的特征之二 继承
1.为什么要设计继承性
- 让类和类之间产生关系
- 减少代码量
- 增加程序的扩展性
2. 通过class A extends B实现类的继承
- 子类:A 的父类为 B ,B可以称为基类、SuperClass和超类等。
- 子类继承父类以后,父类中声明的属性、方法,子类就可以获取得到
- .java的继承只支持单继承,一个类只能继承一个父类,反之,一个父类可以有多个子类
- 子类父类是相对的概念
3.java继承的特点
- 明确:当父类中有私有的属性和方法时,子类同样可以获取得到,只是又封装性的设计,子类不可以直接调用
A.子类除了通过继承,获取父类的结构之后,还可以定义自己特有的属性和方法
B.extends: 子类是对父类功能的“扩展”,子类不是父类的子集;
4.继承结构图
5.demo
public class Person {
private String name;
private int age;
public String getName() {
return name;
}
...
public void eat() {
System.out.println("吃饭");
}
}
// 注释并影响代码程序,其可以在继承person类的属性、方法等
public class Student extends Person{
// private String name;
// private int age;
private String school;
public Student() {}
public Student(String name,int age) {
this.setAge(age);
this.setName(name);
}
// 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 void eat() {
// System.out.println("吃饭");
// }
//
}
// 注释并影响代码程序,其可以在继承person类的属性、方法等
public class Worker extends Person{
// private String name;
// private int age;
// public String getName() {
// return name;
// }
public Worker() {}
public Worker(String name,int age) {
// this.name = name;
// this.age = age;
this.setName(name);
this.setAge(age);
}
// public void setName(String name) {
// this.name = name;
// }
// public int getAge() {
// return age;
// }
// public void setAge(int age) {
// this.age = age;
// }
// public void eat() {
// System.out.println("吃饭");
// }
}