前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JAVA知识基础(八):继承

JAVA知识基础(八):继承

作者头像
栗筝i
发布2022-12-01 08:40:42
2160
发布2022-12-01 08:40:42
举报
文章被收录于专栏:迁移内容

1.概述

1.1、继承的由来 至于由来简单一句话:多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为。

继承描述的是事物之间的所属关系,这种关系是 is-a 的关系。

1.2、继承的定义 继承:就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。

这里再声明一点,父类又称为超类或者基类。而子类又称为派生类这点很基础!

1.3、继承的优点 提高代码的复用性。 类与类之间产生关系,为多态做了完美的铺垫(不理解没关系,之后我会再写一篇多态的文章) 虽然继承的优点很多但是Java只支持单继承,不支持多继承。

1.4、继承的格式 通过 extends 关键字,可以声明一个子类继承另外一个父类,定义格式如下:

代码语言:javascript
复制
  class 父类 {
   ... 
   }
   class 子类 extends 父类 { 
   ... 
}

2.关于继承之后的成员变量

当类之间产生了关系后,其中各类中的成员变量,产生了哪些影响呢? 关于继承之后的成员变量要从两方面下手,一是成员变量不重名方面,二是成员变量重名方面。

如果子类父类中出现不重名的成员变量,这时的访问是没有影响的.

如果子类父类中出现重名的成员变量,这时的访问是有影响的 子父类中出现了同名的成员变量时,在子类中需要访问父类中非私有成员变量时,需要使用 super 关键字,至于修饰父类成员变量,类似于之前学过的 this 。 使用格式 super.父类成员变量名

如果父类中的成员变量非私有:子类中可以直接访问。私有:子类是不能直接访问的。

3.关于继承之后的成员方法

当类之间产生了关系,其中各类中的成员方法,又产生了哪些影响呢? 同样我们依旧从两方面分析。

如果子类父类中出现不重名的成员方法,这时的调用是没有影响的。对象调用方法时,会先在子类中查找有没有对 应的方法,若子类中存在就会执行子类中的方法,若子类中不存在就会执行父类中相应的方法.

成员方法重名大体也可以分两种情况: 1、方法名相同返回值类型、参数列表却不相同(优先在子类查找,没找到就去父类) 2、方法名、返回值类型、参数列表都相同,没错这就是重写(Override)

重写 :子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表都相同),会出现覆盖效果,也称为重写或者复写。声明不变,重新实现。

4.关于继承之后的构造方法

构造方法的名字是与类名一致的,所以子类是无法继承父类构造方法的。

构造方法的作用是初始化成员变量的。所以子类的初始化过程中,必须先执行父类的初始化动作。子类的构造方法中默认会在第一句代码中添加super(),表示调用父类的构造方法,父类成员变量初始化后,才可以给子类使用。

super() 不写也默认存在,而且只能是在第一句代码中。 下一篇是关于this与super关键字的总结。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-05-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.概述
  • 2.关于继承之后的成员变量
  • 3.关于继承之后的成员方法
    • 4.关于继承之后的构造方法
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档