Java基础:1、继承的概念和继承的特点

一、基础概念介绍

  1、继承是什么?

      众所周知,继承是面向对象的三大特征之一。具体将继承理解为两个类之间的关系,被继承的类称为父类,进行父类操作的类叫做子类。子类是对于父类的扩展,通过继承可以使得子类访问父类的非私有成员变量以及成员方法,还可以在子类中对父类中原有的方法进行覆盖重写。

  2、继承带来了什么好处?

      存在必有意义。使用继承可以增强代码的复用性,提高了代码的可维护性,以及使扩展旧代码的操作风险降得更低。如果你接手了一个陈年老旧的系统,发现其中代码漏洞百出,这时又不轻举妄动,那么选择继承原有代码,对原有方法进行重写或许时一个不错的选择。

  3、继承的缺点和不足?

     有利必有弊。继承固然方便好用,但同样也给程序带来了其他的问题。由于继承的存在,增强了两个类之间的耦合性,父类的变动可能会引起子类的意外变动。并且继承是具有入侵性的,只要继承了父类,子类就拥有了父类的所有非私有方法。所以在使用继承时还需要多多考虑。

二、继承中的访问特点以及this、super关键字

  1、继承中访问变量的特点

      关于继承的访问特点,关键就要记住四个字——就近原则。

      当子类出现和父类同样的成员变量时,访问的是子类成员变量;

      当子类中和父类出现同样的成员变量,切方法中有同名的局部变量时,访问的是局部变量。

      当方法内部找不到变量时会找成员变量,如果成员变量也不存在时就会查找父类的成员变量,如果父类中也没有的话则报错。

   2、继承中访问构造方法的特点

       在子类构造方法的第一行会默认隐式的调用父类的无参构造方法[ super() ],如果父类中没有无参构造方法则会报错。也可以显示的调用父类构造方法,但必须将构造方法写在子类构造方法第一行,否则同样会报错。

       当对一个类进行初始化时,虚拟机会检查该类是否有父类,并检查父类是否已经初始化,如果没有初始化则先进行父类的初始化操作;如果父类已经初始化完成, 这时会在为子类分配的内存空间中,分拨一片给父类存储相关信息(如成员变量等),然后将该片内存空间初始化为零值,进行一些必要的设置,再执行父类的<init>方法。再在剩余的空间中对子类相关信息进行初始化,执行和父类相同的步骤。

   3、继承中访问成员方法的特点

       在子类中调用方法,先在子类中找,子类中没有再到父类中找,父类没有再到父类的父类找,直到最顶层没有则报错。如果子类和父类中有同样方法签名的方法,则调用子类中的方法(方法重写)。

   4、super和this关键字

       super代表着父类的引用,可以在子类中通过super关键字调用父类中的成员;this代表着子类自己的引用,可以通过this访问子类本身的成员变量。如:在方法中有一个变量,变量名和在类中的一个成员变量变量名相同,那么可以在方法内部通过this关键字调用成员变量。

原文地址:https://www.cnblogs.com/dc5e/p/11122258.html

时间: 2024-08-09 18:39:31

Java基础:1、继承的概念和继承的特点的相关文章

JAVA基础笔记(很实用)继承-多态-抽象类-接口-异常-集合-IO-线程-Socket

第七章:Java继承 一.继承的概念 1.一个父类派生出一个子类的机制称为继承. 2.承是重用程序代码的有力手段,当多个类之间存在相同的属性和方法时,可以从这些类中抽象出父类. 3.们只需要在父类中定义这些属性和方法,而子类无须重新定义这些属性和方法,直接从父类继承即可. 4.通过继承,子类就会自动的拥有在父类中定义的属性和方法. 5.两个或多个类的成员中存在一部分相同的情况,通过继承机制,可以利用现有的类来创建新的类. 6.子类不但拥有父类的成员,还可以定义新的成员. 7.可以提高软件的可重用

Java基础知识回顾之三 ----- 封装、继承和多态

前言 在上一篇中回顾了java的修饰符和String类,这篇就来回顾下Java的三大特性:封装.继承.多态. 封装 什么是封装 在面向对象程式设计方法中,封装是指一种将抽象性函式接口的实现细节部份包装.隐藏起来的方法. 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问.要访问该类的代码和数据,必须通过严格的接口控制. 封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段.适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性. 简

Java基础教程(4)--面向对象概念

??如果你之前从来没有使用过面向对象编程语言,那么在学习Java之前需要先理解几个有关面向对象编程的基本概念.这篇教程将会向你介绍对象.类.集成.接口和包的概念,以及这些概念是如何与现实世界相关联,并介绍这些概念在Java语言中的体现. 一.对象 ??对象将状态和行为绑定在一起,它可以被用来模拟你能列举出的现实世界中的任何实体.这一小节将会解释如何在对象中表示状态和行为,介绍封装的概念,并解释这种软件设计方式的好处. ??对象是理解面向对象技术的关键.环顾四周,你会发现许多现实世界中的对象:狗.

Java基础-异常类--异常概念、一般格式、Throwable类的一些方法

简介: 1.异常的概念 异常:问题-->不正常情况--->封装成对象 ; java对不同的不正常情况进行描述后的对象体现; 对于严重的异常,java通过Error类进行描述-------一般不编写针对性的代码对其进行处理 对于非严重可处理的异常的,java通过Exception类进行描述--可使用针对性的代码进行处理 体系: Object<--Throwable<--Error/Exception 2.一般格式 try{ * * } catch(异常类 变量){ * 处理问题* }

java基础:常量的概念和使用

常量: 在程序执行的过程中,其值不发生改变的量 分类: A:字面值常量 字符串常量        用双引号括起来的内容. 举例:"hello","world","HelloWorld" 整数常量        所有的整数 举例:100,200 小数常量        所有的小数 举例:10.23,110.11 字符常量        用单引号括起来的内容 举例:'a','A','0' 错误的:'ab' 布尔常量        比较特殊 举例:tr

java基础: 注释的概念和分类

注释概述: 就是对程序进行解释说明的文字 java中的注释以及格式: A:单行注释        // B:多行注释        /**/ C:文档注释 /** */ 被javadoc工具解析生成一个说明书. 注意:多行注释不可以嵌套使用 注释的作用: 解释说明程序,提高代码的可读性. 可以帮助我们调试程序.

java基础:数据类型的概念和分类

数据类型: Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间 数据类型的分类: 基本数据类型: 整数: 占用字节数 Byte 1 Short 2 Int 4 Long 8 浮点数: Float 4 Double 8 字符: Char 2 布尔: Boolean 1 注意: 整数默认是int类型 浮点型默认是double类型 在定义long类型的值是末尾需要加l或者L 引用数据类型(类,接口,数值)

JAVA基础——面向对象三大特性:封装、继承、多态

JAVA面向对象三大特性详解 一.封装 1.概念: 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问. 2.好处: 只能通过规定的方法访问数据.     隐藏类的实例细节,方便修改和实现. 3.封装的实现步骤 需要注意:对封装的属性不一定要通过get/set方法,其他方法也可以对封装的属性进行操作.当然最好使用get/set方法,比较标准. A.访问修饰符 从表格可以看出从上到下封装性越来越差. B.this关键字 1.this关键字代表当前

夯实Java基础系列目录

学习Java语言也有很长一段时间了,但是之前只是学习了Java的基础部分,对于什么IO流.多线程之类的只学习了一点,并没有过多的去学习,所以随着后面学习的深入,发现没有这部分知识更加的重要,所以现在我又重新来复习一遍Java基础,努力打好自己的Java基础,在这里我要说句话(其实一万句都不够):Java基础非常重要!Java基础非常重要!Java基础非常重要! 一.Java基础 1.夯实Java基础(一)--数组 2.夯实Java基础(二)--面向对象之封装 3.夯实Java基础(三)--面向对