继承
继承,见名知意,就是父亲可以继承爷爷的,儿子可以继承父亲的一些东西,上一辈的私有的东西儿子不能继承
多个子类(派生类)中把共性抽取出来放到父类(基类/根类)中,然后子类通过extends关键字与父类产生关联,子类可以直接区使用父类中的非私有资源
继承的特点
-
只支持单继承,可以多层继承
-
子类只能继承父类非私有成员(成员属性和成员方法)
this:当前对象的引用(可以看成是当前对象)
super:当前的对象的父类的引用(不可以看成就是父类,相当于一根指针指向了父类而以)
继承中成员的特点:
- 成员变量(成员变量没有重写的概念)
- 成员方法
- 当父类的方法无法满足子类自身的需求时,子类可以重写父类方法
- 当子类重写父类的方法之后,调用的是子类重写了的父类的方法
继承的优缺点
-
缺点
-
单一继承
-
子父类存在继承关系,子类与父类之间的联系必定十分紧密
这样就违反了我们的开发原则:高内聚低耦合
内聚:每一个单独的类完成事情的能力
耦合:类与类之间的联系
-
-
优点
- 提高代码的复用性
- 提高程序的可维护性
演示继承
/**
* Project:面向对象
* Package:demo
*
* @date: 2020/12/22
* @author: CnreCoder
* @signature: Bug Free
* @version: 1.8
*/
public class ExtendsDemo {
public static void main(String[] args) {
//创建一个子类对象
Son son = new Son();
//输出子类从父类继承过来的存款
System.out.println(son.money);
//输出子类从父类继承过来的房子大小
System.out.println(son.houseSize);
//输出子类重写的工作方法
son.work();
//输出子类从父类继承过来的洗头方法
son.shampoo();
//父类的喝酒方法是私有的继承不过来
// son.drink();
}
}
/***
* 父类
*
* 这是个外部类
*/
class Parent{
/**
* 存款
*/
int money = 10000;
/**
* 房子大小
*/
int houseSize = 100;
/**
* 工作方法
*/
public void work(){
System.out.println("搬砖");
}
/**
* 洗头方法
*/
public void shampoo(){
System.out.println("倒立洗头");
}
/**
* 私有的喝酒方法
*/
private void drink(){
System.out.println("喝酒");
}
}
/***
* 子类
*
* 这是个外部类
*/
class Son extends Parent{
/**
* 子类
*/
@Override
public void work(){
System.out.println("建筑师");
}
}
程序执行结果如下:
如果你学废了就 一键三连 支持支持我吧,谢谢!其他优质文章点击这里即可观看!