学习日记(十三)java类的继承

java中的继承用extends关键字来实现,被继承的类叫做超类、父类、基类,实现继承的类称为子类、派生类。

子类是一种特殊的父类,因此可以看作父类是大类,子类是小类。

extends实际上是拓展的意思,而父类和子类的关系实际上用拓展来解释似乎更加的恰当,子类在父类功能的基础上增加新的功能。

在继承中,除开父类的构造器以外,子类几乎可以继承父类所有的功能和属性。

每个类最多只能有一个直接的父类,可以有无限多个间接父类,就像人一样,只能有一个亲生父亲。

若一个类定义的时候没有显示定义直接父类,则默认继承java.lang.Object,他是所有类的父类,因此所有的java对象都可以调用java.lang.Object的实例方法。

父类引用可以指向子类对象,即声明一个父类型的变量可以实例化为子类的对象,这也是java多态性的一个重要的实现方式。除此之外,方法的重载也是多态性的实现方式之一。

需要注意的是,重写方法和被重写的方法必须同时都是类方法或者同时都不是类方法。

继承中还有一个很重要的概念是重写,对于子类重写过的方法,使用时究竟使用重写前的版本还是重写后的版本,取决于对象的类型而不是引用的类型。

重写的时候,子类方法会覆盖父类的方法,父类private方法不可被重写。

有的时候,当子类定义了与父类同名的属性时,也会覆盖父类的属性。正常情况下,子类定义的方法、子类属性直接访问该属性时,都会默认访问覆盖后的方法和属性而无法访问到被覆盖的方法和属性。但是在子类定义的实例方法中可以通过super来访问父类被覆盖的方法和属性。

如果子类中没有和父类同名的属性,那么访问的时候不需要用super,可以直接访问。和this一样,super也不能出现static方法中。

继承的时候不继承父类的构造器,如果在子类中一定要用的话,也可以通过super来调用。而即使不显示的调用父类构造器,系统也会默认在子类构造器执行体的第一行调用父类构造器一次,只不过是调用父类的无参构造器。

super调用和this调用不会同时出现。

子类构造器调用父类构造器有几种情况:

1.super显示调用,系统会根据super里的实参列表选择调用父类的哪个构造器。

2.子类构造器执行体的第一行用了this调用本类重载的构造器,那么在执行调用的构造器的第一行会调用父类的构造器。

3.子类中既没有this调用也没有super调用,系统会默认在子类构造器执行体的第一行调用父类的无参构造。

创建任何对象总是从该类继承树的最顶层构造开始执行,然后依次向下,最后才是本类。

时间: 2024-10-12 23:24:13

学习日记(十三)java类的继承的相关文章

java类的继承

继承就是在一个现有类型的基础上,通过增加新的方法或者重定义已有方法(重写)的方式,产生一个新的类型.继承是面向对 象的三个基本特征--封装.继承.多态的其中之一,我们在使用java时编写的每一个类都是在继承,因为在java语言 中,java.lang.object类是所有类最根本的基类(或者叫父类.超类),如果我们新定义的一个类没有明确地指定继承自哪个基类,那么java 就会默认为它是继承自object类的. 1.为什么需要使用继承? 提高代码的重用性. 提高程序的扩展性. 2.Java继承的语

Java 类设计----Java类的继承

Java类的继承 为描述和处理个人信息,定义类Person: public class Person { public String name; public inat age; public Date birthDate; public String getInfo() {...}} 为描述和处理学生信息,定义类Student: public class Student { public String name; public int age; public Date birthDate; p

零基础入门学习java第十三节:Java类的继承与多态

继承是类的一个很重要的特性,什么?你连继承都不知道?你是想气死爸爸好继承爸爸的遗产吗?(滑稽) 开个玩笑,这里的继承跟我们现实生活的中继承还是有很大区别的,一个类可以继承另一个类,继承的内容包括属性跟方法,被继承的类被称为父类或者基类,继承的类称为子类或者导出类,在子类中可以调用父类的方法和变量.在java中,只允许单继承,也就是说 一个类最多只能显示地继承于一个父类.但是一个类却可以被多个类继承,也就是说一个类可以拥有多个子类.这就相当于一个人不能有多个父亲一样(滑稽,老王表示不服). 话不多

Java 类的继承

1. 继承的概念 继承在本质上是 特殊 -- 一般 的关系,即常说的is-a关系.子类继承父类,表明子类是一种特殊的父类,并且具有父类所不具有的一些属性或方法.在Java中使用extends关键字来标识两个类的继承关系. 2. 继承中的初始化顺序 从类的结构上而言,其内部可以有如下四种常见形态:属性(包括类属性和实例属性).方法(包括类方法和实例方法).构造器和初始化块(包括类的初始化块和实例的初始化块).对于继承中的初始化顺序,又具体分为类的初始化和对象的初始化. 类初始化: 在jvm装载类的

java类的继承-----继承的定义

继承(inheritance)是面向对象编程的核心机制之一,没有使用继承的程序设计,就不能成为面向对象的程序设计. 1.继承的定义 特殊类的对象拥有一般类的全部属性与行为,称为特殊类对一般类的继承.一个类可以是多个一般类的特殊类,也可以从多个一般类中继承属性与行为,但在java语言中,不允许一个类从多个一般类中继承属性与行为,即在java语言中,只支持单继承. 在软件开发中,通过继承机制,可以利用已有的数据类型来定义新的数据类型.所定义的新的数据类型不仅拥有新定义的成员,而且还同时拥有旧的成员.

JavaSE入门学习15:Java面向对象之继承

今天我们来看Java三大面向对象特性中的继承. 一Java继承 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类.继承可以理解为一个对象从另一个 对象获取属性的过程. 如果类A是类B的父类,而类B是类C的父类,我们也称C是A的子类,类C是从类A继承而来的.在Java中,类的继 承是单一继承,也就是说,一个子类只能拥有一个父类. 继承中最常使用的两个关键字是extends和implements.这两个关键字的使用决定了一个对象和另一个对象是否是 IS-A(是一个)关系.通过使

Java类与继承

Java:类与继承 对于面向对象的程序设计语言来说,类毫无疑问是其最重要的基础.抽象.封装.继承.多态这四大特性都离不开类,只有存在类,才能体现面向对象编程的特点,今天我们就来了解一些类与继承的相关知识.首先,我们讲述一下与类的初始化相关的东西,然后再从几个方面阐述继承这一大特性.以下是本文的目录大纲: 一.你了解类吗? 二.你了解继承吗? 三.常见的面试笔试题 若有不正之处,请多多谅解并欢迎批评指正. 请尊重作者劳动成果,转载请标明原文链接: http://www.cnblogs.com/do

Java类的继承与权限控制

1.继承:***是一种****,说明是继承关系 Java中使用extends关键字实现类的继承机制,语法规则: 通过继承,子类拥有基类(superclass/父类)的所有成员(成员变量和成员方法) Java只支持单继承,不允许多继承 一个子类只能有一个基类,一个基类可以派生出多个子类  2.访问控制

java类的继承,多态,抽象类与接口

知识点梳理:     1,怎样定义自己的类. MyStarFrame,MyStarPanel 类中定义: (1)属性(数据),变量. (2)方法(函数),行为. (3)构造方法(特征,作用,何时被调用,构造方法怎么写). 2,继承自已经存在的类.(API,自己写的).  写继承: public class A extends B{     /**方法的覆盖,重写      * 父类中有同名同参的方法.     */       public void paint(){   } /**扩展的新方法