我们知道面向对象编程有3大基本特性:封装、继承和多态,今天我们来聊一聊继承。
继承是java面向对象编程技术的一块基石,因为它允许创建等级层次的类。继承的基本思想是基于某个父类的扩展,并制定出一个新的子类,子类可以继承父类原有的属性和方法,也可以增加父类不具备的属性和方法,或者重写父类中的某些方法。
--------------------为什么要继承
* 子类之间不会存在重复的代码,维护性也提高,代码也更加简洁,提高代码的复用性(复用性主要是可以多次使用,不用再多次写同样的代码)
值得注意的是java不支持多继承,也就是一个子类不能拥有多个父类,但java支持多重继承,注意二者的区别哦,多重继承就是“一个连一个”,下图详解:

---------------------继承的特性
* 子类拥有父类非private的属性、方法
* 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
* 子类可以用自己的方式实现父类的方法
* 提高了类之间的耦合性(缺点是,耦合度越高,代码独立性越差)
--------------------继承关键字
* extends关键字,不多说了,这就是继承啊
* final关键字,声明类可以把类定义为不能继承的,即最终类
* super关键字:我们可以通过super关键字来实现对父类成员的访问,用 来引用当前对象的父类
* this关键字:指向自己的引用
来个super和this的栗子:

--------所有类的父类—object类
在再开始学习使用calss关键字定义类时,就应用到了继承原理,因为在java中,所有的类都直接或者间接了java.lang.Object类。在Object类中主要包括clone()、finalize()、equals()和toString()等方法,下面介绍下常用的方法。
------------------------getClass()方法
getClass方法会返回某个对象执行时的Classs实例,然后通过Class实例调用getName()方法获取类的名称,语法为:getClass.getName();
------------------------toString()方法
toString()方法会返回某个对象的字符串表示形式。
------------------------equals()方法
Object类中的equals()方法比较的是两个对象的引用地址是否相等,来个栗子如下:

原文:https://www.cnblogs.com/yusuf/p/12820976.html