1:成员变量。

当子父类中出现一样的属性时,子类类型的对象,调用该属性,值是子类的属性值。

如果想要调用父类中的属性值,需要使用一个关键字:super

This:代表是本类类型的对象引用。

     Super:代表是子类所属的父类中的内存空间引用。

注意:子父类中通常是不会出现同名成员变量的,因为父类中只要定义了,子类就不用在定义了,直接继承过来用就可以了。

2:成员函数。

当子父类中出现了一模一样的方法时,建立子类对象会运行子类中的方法。好像父类中的方法被覆盖掉一样。所以这种情况,是函数的另一个特性:重写

3:构造函数。

发现子类构造函数运行时,先运行了父类的构造函数。为什么呢?

原因:子类的所有构造函数中的第一行,其实都有一条隐身的语句super();

super(): 表示父类的构造函数,并会调用于参数相对应的父类中的构造函数。而super():是在调用父类中空参数的构造函数。

为什么子类对象初始化时,都需要调用父类中的函数?(为什么要在子类构造函数的第一行加入这个super()?)

因为子类继承父类,会继承到父类中的数据,所以必须要看父类是如何对自己的数据进行初始化的。所以子类在进行对象初始化时,先调用父类的构造函数,这就是子类的实例化过程

注意:子类中所有的构造函数都会默认访问父类中的空参数的构造函数,因为每一个子类构造内第一行都有默认的语句super();

如果父类中没有空参数的构造函数,那么子类的构造函数内,必须通过super语句指定要访问的父类中的构造函数。

如果子类构造函数中用this来指定调用子类自己的构造函数,那么被调用的构造函数也一样会访问父类中的构造函数。

问题:

super()和this()是否可以同时出现的构造函数中?

两个语句只能有一个定义在第一行,所以只能出现其中一个。

super()或者this():为什么一定要定义在第一行?

因为super()或者this()都是调用构造函数,构造函数用于初始化,所以初始化的动作要先完成。

在方法覆盖时,注意两点:

1:子类覆盖父类时,必须要保证,子类方法的权限必须大于等于父类方法权限可以实现继承。否则,编译失败。(举个例子,在父类中是public的方法,如果子类中将其降低访问权限为private,那么子类中重写以后的方法对于外部对象就不可访问了,这个就破坏了继承的含义)

2:覆盖时,要么都静态,要么都不静态。 (静态只能覆盖静态,或者被静态覆盖)

继承的一个弊端:打破了封装性。对于一些类,或者类中功能,是需要被继承,或者复写的。

这时如何解决问题呢?介绍一个关键字,final

final特点:(详细解释见前面)

1:这个关键字是一个修饰符,可以修饰类,方法,变量。

2:被final修饰的类是一个最终类,不可以被继承。

3:被final修饰的方法是一个最终方法,不可以被覆盖。

4:被final修饰的变量是一个常量,只能赋值一次。

转载于:https://www.cnblogs.com/caomeipiper/p/8507398.html

继 承(面向对象特征之一)相关推荐

  1. Java第八课. 面向对象特征3-多态抽象类

    Java第八课. 面向对象特征3-多态&抽象类 回顾 1. toString(): 返回对象信息; 打印:syso(对象名.toString()); toString()可以省略,syso(对 ...

  2. java之面向对象知识体系_JAVA基础知识总结5(面向对象特征之一:继承)

    继 承: 1:提高了代码的复用性. 2:让类与类之间产生了关系,提供了另一个特征多态的前提. 父类的由来:其实是由多个类不断向上抽取共性内容而来的. JAVA只支持单继承.java虽然不直接支持多继承 ...

  3. Java码农进阶之路~代码块面向对象特征之继承

    一 代码块 1.局部代码块(方法) 书写位置:方法中 作用:限制作用域 2.构造代码块 书写位置:类中 方法外 代码的执行顺序: ①系统调用 ②只要创建对象 就会调用 ③构造代码块 在 构造方法 之前 ...

  4. Java面向对象特征之三 多态

    文章目录 Java面向对象特征之三 多态 1.多态的定义 2.多态的分类 静多态 动多态 3.向上造型 向上造型的好处 4.多态实例演示 5.多态的实现原理 6.多态的深入理解 6.1 静多态(静态绑 ...

  5. 面向对象特征之一:封装与隐藏(封装性)

    目录 面向对象特征之一:封装与隐藏(封装性) 一.问题的引入: 二.封装性的体现: 三.封装性的体现,需要权限修饰符来配合. 封装性的体现,需要权限修饰符来配合 构造器(或构造方法,construct ...

  6. 继 承(面向对象特征之二)

    好处: 1:提高了代码的复用性. 2:让类与类之间产生了关系,提供了另一个特征多态的前提. 父类的由来:其实是由多个类不断向上抽取共性内容而来的. java中对于继承,java只支持单继承.java虽 ...

  7. java面向对象特征

    java面向对象的特征:封装,继承,抽象,多态: --1--.封装: 什么叫做封装? 封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口. 面向对象计算始于这个基本概念,即现实世界可以被描绘 ...

  8. java面向对象特征及阐述,Java面向对象四个特征

    Java面向对象有四个特征:抽象.封装.继承.多态.其中封装.继承.多态又被称为Java的基本特征. 抽象: Java中会把客观事物抽象成一个类.类就是封装了数据以及操作这些数据的代码逻辑实体.用字符 ...

  9. java纯粹面向对象_Java的面向对象特征

    Java是纯粹的面向对象编程语言,完全支持面向对象的三大基本特征:封装.继承和多态.Java程序的组成单位就是类,不管多大的Java应用程序,都是由一个个类组成的. 1. 一切都是对象 在Java语言 ...

最新文章

  1. 菜鸟程序员之Asp.net MVC Session过期异常的处理
  2. WIN7系统开题提示loli.vbs 操作超时怎么办
  3. 将表数据生成Insert脚本
  4. DAPP开发初探——永存的留言
  5. Java List.size()方法:返回列表中元素的个数(亲测)
  6. win7蓝屏_win7电脑蓝屏怎么办
  7. unity中如何解决镜头穿透模型?
  8. 【转载】架构师需要了解的Paxos原理、历程及实战
  9. 2021年最新的Python大厂Python基础编程
  10. 王思聪欠款1.5亿成被执行人 孙宇晨:我帮你还钱!
  11. MYSQL的索引类型:PRIMARY, INDEX,UNIQUE,FULLTEXT,SPAIAL 区别与使用场合
  12. Euclidean, Manhattan, hop-count distance 区别
  13. diy手工制作泡沫小球_一撮羊毛用针来回的戳,DIY手工制作羊毛毡小动物,越戳越带劲...
  14. Atitit 语言的异常机制 目录 1. 异常处理,英文名为exceptional handling, 是代替日渐衰落的error code方法的新法, 1 2. 三种模式 1 2.1. 终止模式
  15. 下载精确卫星星历文件 2015.3.31
  16. 工具说明书 - 英语翻译软件对比和英语词典选择
  17. 一年级上册知识点——语文(人教版)
  18. 狄马:荒谬的苦难哲学
  19. 一文读懂 WalletConnect
  20. 客制化踩坑记——我的第一把40%序列键盘

热门文章

  1. asp.net 中ashx、axd的区别
  2. TensorFlow(十)定义图变量的方法
  3. 有关糖尿病模型建立的论文_预测糖尿病结果的模型比较
  4. 乱用信用卡?黑名单见
  5. 我大学期间看的好书推荐
  6. 神舟笔记本电源管理软件_笔记本电脑是一直插着电源好,还是拔了电源好?
  7. golang延时_golang 实现延迟消息原理与方法
  8. Unity HDRP渲染管线基础指南
  9. 7.Phong 和 BlinnPhong
  10. scipy.ndimage.zoom上采样与下采样