5、继承(extends)

继承主要目的是提高代码的复用性,但是只有在类与类之间有所属关系的时候才能继承,不能为了获取其他类的功能而继承,Java中只有单继承,不支持多继承,但可以多层继承

当父类中定义了相同的功能,内容不同时,子类对象不确定调用哪一个,容易带来安全隐患,所以不支持多继承。

一、方法的重写

1、当子类和父类有一样的方法时,对象会调用子类的方法,称为方法的重写

2、重写父类方法时,方法必须一致,包括参数和返回值类型

3、只有子类的权限大于或等于父类时,才能对父类方法重写

二、继承中的构造方法

1、继承后,子类可以直接调用父类的方法,所以子类对象建立时需要对父类的数据进行初始化

2、子类的构造函数中会默认调用父类中空参数的构造函数即 super(),当父类中没有空参数的构造函数时,需要手动设置super()用来初始化父类数据

3、this()或super()只能放在构造函数的第一行,所以子类至少有一个构造函数访问父类

三、抽象(abstract)

1、当多个类出现相同功能时,功能主题不同,这时可以向上抽取,只抽取定义,不抽取主题。

2、类与方法必须由关键字abstract修饰

3、抽象方法一定要放在抽象类中,但抽象类可以不定义抽象方法(不让建立对象)

4、抽象类不可以建立对象,抽象的方法没有意义

5、抽象类方法要使用需要子类,需用子类复写父类所有抽象方法,建立子类对象使用,如果只复写了部分抽象方法,则还是抽象类。

时间: 2025-01-06 00:27:51

5、继承(extends)的相关文章

JAVA之旅(六)——单例设计模式,继承extends,聚集关系,子父类变量关系,super,覆盖

JAVA之旅(六)--单例设计模式,继承extends,聚集关系,子父类变量关系,super,覆盖 java也越来越深入了,大家加油吧!咱们一步步来 一.单例设计模式 什么是设计模式? JAVA当中有23种设计模式,解决某一问题最有效的方法 单例设计模式 解决一个类在内存中只存在一个对象 想要保证对象唯一该怎么做> 1.为了避免其他程序过多建立该类对象,先禁止其他程序建立该类对象 2.还为了让其他程序访问到该类对象,只好在本类中自定义一个对象 3.为了方便其他程序对自定义对象的访问,可以对外提供

【java的继承extends】

java中 "继承"是面向对象软 件技术当中的一个概念.如果一个类A继承自另一个类B,就把这个A称为"B的子类",而把B称为"A的父类".继承可以使得子类具有父类的各种属性和方 法,而不需要再次编写相同的代码.在令子类继承父类的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类的原有属性和方法,使其获得与父类不同的功能. 继承的基本概念 1.继承是面向对象的三大特性之一.(封装,继承,多态) 2.被继承的类是父类,继承父类的类是子类 3.继承

JAVA 继承 extends

/* 继承 1.提高了代码的复用性,简化了代码 2.让类与类之间产生了继承关系,才有了后面的多态的特性的存在 注意:千万不要为了获取其它类的功能简化代码,而建立继承关系, 必须要类与类之间存在继承关系,继承关系:is a(某某东西要是某某东西的一种,例如:猫是猫科的一种) 3.子类拥有父类的成员 4.子类不能拥有父类中被Private修饰后的成员 5.JAVA支持多层继承 在多层继承中最下层的子类拥有整个继承体系的成员,最上层的父类里面定义所有子类的共性的描述 JAVA中不支持多继承,只支持单继

PHP 类的继承 extends 关键字

PHP 类的继承 PHP 类的继承是指建立一个新的派生类,从一个或多个先前定义的类中继承数据和方法,而且可以重新定义或加进新数据和方法,从而建立了类的层次或等级. 我们称已存在的用来派生新类的类为父类,由已存在的类派生出的新类为子类.继承是面向对象的三大特性之一. 通过继承机制,可以利用已有的数据类型来定义新的数据类型.所定义的新的数据类型不仅拥有新定义的成员,而且还同时拥有旧的成员. 注意:不同于 Java 等语言,在 PHP 中,一个类只能直接从一个类中继承数据,即单继承. 使用 exten

scala 基础九 scala 类的扩展和继承extends override

1.scala 类的继承 package smart.iot //父类 animal 有三个参数 class animal(var name:String,var age:Int,var eat:String) { } //子类 panda 继承父类 animal class Panda( name:String, age:Int, eat:String,var blackeye:String) extends animal(name,age,eat) { } object load { def

PHP Smarty 模板 模板继承 {extends}

{extends}模板继承中,你可以在子模板内使用{extends}标签来扩展父模板. 1.{extends}必须放在模板的第一行. 2.如果子模板要用{extends}来扩展父模板,那么它只能有 {block}的区域. 3.任何其他的模板内容都会被忽略. 扩展使用在$template_dir 之外的文件,请使用模板资源的语法. Note当你扩展一个父模板名称的变量如{extends file=$parent_file}, 请确保$parent_file变量放到同一个 $cache_id中. 否

1-8继承extends

什么是继承? 继承是面向对象三大特征之一.java中的继承描述的是两个类之间的关系,被继承的类称为父类,继承的类称为子类,使用extends关键字来表示.在java语言里面只支持单继承,即一个类只能有一个父类,子类可以继承父类中的非private修饰的成员方法和成员变量,构造方法不能被继承,java里面的继承跟现实生活中的继承颇为相似,现实生活中一个儿子只能有一个父亲,儿子可以继承父亲的房子车子但是不能继承父亲大脑里面的思想和知识.如果一个类没有显示的继承其他类,那么这个类会默认继承Object

iBatis.net 类的继承extends

<resultMaps> <resultMap id="FullResultMap" class="t_c_doctor"> <result property="doctor_byyy_id" column="doctor_byyy_id"/> </resultMap> <resultMap id="TeamDoctor" class="Use

java的权限及继承extends

父类私有属性子类可以继承,但不能访问,不能修改,及例中child类中n_private=10;这句话是错的,私有不可访问

继承 extends

Object 是所有java类的父类 单根性:一个类只有一个父类! 继承的注意事项: 1.如果我们实例化子类对象的时候,调用的是无参构造,会先去调用父类的无参构造. 2.如果我们实例化子类对象的时候,调用的是无参构造 (1)但是在构造方法中没有显示的输入super(参数),默认还是执行父类的无参构造. (2)但是在构造方法中显示的输出super(参数),则执行父类的带参构造. 3.父类中私有的属性和方法,子类不能继承 4.父类的构造方法也不能继承 super关键字 1.只能出现在子类的方法中 2