在说继承之前,先看Student、Teacher这两个类,通过下面的代码可以看出什么?
细心的你可能已经有所发现了,那就是它们都含有相同的属性和方法。
如果把相同特征提取出来,放到一个类中,暂时先把这个类叫做 TandS 类,就变成下面这样。
由于Teacher类和Student类把相同的属性和方法都提取出来放到了TandS类中,所以,它们自己的一些属性和方法肯定用不了了,但是它们确实需要用,怎么办呢?这时就想,有没有一种机制能够让Teacher类和Student类拥有TandS类中的属性和方法呢?答案是有的,那就是让它们产生一种关系即可,这种关系就是继承关系。
1、继承概述
继承是面向对象三大特征之一。可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法。
继承的格式:
- 格式:public class 子类名extends 父类名(}
- 范例:public class Zi extends Fu{}
- Fu:是父类,也被称为基类、超类
- Zi:是子类,也被称为派生类
下面看代码实现:
(1)Fu类的代码实现
public class Fu {
public void show(){
System.out.println("show 方法被调用。。");
}
}
(2)Zi类的代码实现
public class Zi extends Fu{
public void method(){
System.out.println("method 方法被调用。。");
}
}
(3)Test类的代码实现
public class Test {
public static void main(String[] args) {
Fu f = new Fu();
f.show();
Zi z = new Zi();
z.method();
z.show();
}
}
(4)运行结果
2、继承中子类的特点
(1)子类可以有父类的内容;
(2)子类还可以有自己特有的内容。
3、继承的好处和弊端
(1)继承好处
- 提高了代码的复用性,多个类相同的成员(成员变量和成员方法)可以放到同一个类中;
- 提高了代码的维护性,如果方法的代码需要修改,修改一处即可。
(2)继承弊端
- 继承让类与类之间产生了关系,类的耦合性增强了,当父类发生变化时子类实现也不得不跟着变化,削了子类的独立性
(3)什么时候使用继承?
- 继承体现的关系:is a;
- 假设:我有两个类A和B,如果他们满足A是B的一种,或者B是A的一种,就说明他们存在继承关系,这个时候就可以考虑使用继承来体现,否则就不能滥用继承;
- 举例
① 苹果和水果:苹果是一种水果,所以可以用继承。
② 猫和动物:猫是动物的一种,所以可以用继承。
③ 猫和狗:猫是狗的一种吗?或者狗是猫的一种吗?都不是吧,所以它们不可以用继承。
4、继承的注意事项
(1)Java中类只支持单继承,不支持多继承
(2)Java中类支持多层继承
本文为学习笔记,所参考文章均已附上链接,若有疑问请私信!
创作不易,如果对你有点帮助的话麻烦点个赞支持一下!
新手小白,欢迎留言指正!