目录
引出继承思想
class Father{
String name;
int age;
Father(){}
//getXxx()和setXxx()
public void study(){
System.out.println("学习");
}
}
class Son{
String name;
int age;
Son(){}
//getXxx()和setXxx()
public void study(){
System.out.println("学习");
}
}
通过观察我们发现,这两个类的name和age这两个成员变量以及study()成员方法都是相同的,如果我们还继续定义其他的儿子类,父亲类等,每定义一次这样的类,就要把重复的内容再写一遍。
能不能把这些相同的内容定义到一个独立的类中,然后,让其他的类与这个独立的类产生一个关系,这些其他的类就具备了这个独立的类的功能
为了解决这个问题,java提供了一个思想——继承
继承:多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可
通过extends关键字可以实现类与类的继承
继承知识点,extends关键字
1.语句定义格式
class 子类名 extends 父类名{...}
举例:class Fu{}
class Zi extends Fu{}
单独的这个类称为父类,基类或者超类;这多个类可以称为子类,派生类
class Human {
String name;
int age;
//getXxx()和setXxx()
public void study() {
System.out.println("学习");
}
}
class Father extends Human {
}
class Son extends Father {
}
public class ExtendsDemo {
public static void main(String[] args) {
//创建一个父亲对象
Father f1 = new Father();
f1.study();
//创建一个儿子对象
Son s1 = new Son();
s1.study();
}
}
2.继承的好处
1)提高了代码的复用性
2)提供了代码的维护性(如果功能的代码需要修改,修改一处即可)
3)让类与类之间产生关系(为后面学习多态做铺垫:要有继承才有多态)
3.继承的坏处
类的耦合性增强
打破了封装性
开发的原则:低耦合,高内聚
(耦合:类与类的关系;内聚:类自己本身可以完成的事情)
4.有了继承以后,我们定义一个类的时候,可以在一个已经存在的类的基础上,还可以定义自己的新成员
class Person {
String name;
int age;
Person() {
}
//getXxx()和setXxx()
public void eat() {
System.out.println("吃饭");
}
public void study() {
System.out.println("学习");
}
}
//学生类继承人类之后,拥有了人类中的成员变量和成员方法,也可以自己定义自己类特有的成员变量和成员方法
class Student3 extends Person {
String id;
public void playGame() {
System.out.println("打游戏");
}
}
class Teacher3 extends Person {
}
public class ExtendsDemo2 {
public static void main(String[] args) {
//创建一个学生