Java_10 继承
1 继承的好处
继承的出现提高了代码的复用性,提高软件开发效率。
继承的出现让类与类之间产生了关系,提供了多态的前提。
2 继承的注意事项
在Java中,类只支持单继承,不允许多继承,也就是说一个类只能有一个直接父类,例如下面这种情况是不合法的。
class A{}
class B{}
class C extends A,B{} // C类不可以同时继承A类和B类
3 继承后子类父类成员变量的特点
子类的对象调用成员变量的时候,子类自己有,使用子类,子类自己没有调用的父类
当子父类中出现了同名成员变量
4 继承后子类父类成员方法的特性_子类重写父类方法
子类的对象调用方法的时候,子类自己有,使用子类,子类自己没有调用的父类
出现同名成员变量
子类中出现与父类一模一样的方法时,会出现覆盖操作,也称为override重写、复写或者覆盖
5 方法覆盖的注意事项
权限:子类方法覆盖父类方法,必须要保证权限大于等于父类权限。
四大权限:public>默认=protected>private
重载与重写对比:
重载:
权限修饰符(public private 默认):无关
方法名:重载的两个方法的方法名必须相同
形参列表:形参类型的顺序不同、形参的个数不同、形参的类型不同,三者至少满足一个
返回值类型:重载与返回值类型无关
重写:
权限修饰符(public private 默认): 子类方法的权限>=父类的方法的权限
方法名: 子类方法和父类方法必须相同
形参列表: 子类方法和父类方法的形参列表必须相同
返回值类型:基本类数据类型:必须相同;
引用数据类型:子类方法的返回值类型和父类方法的返回值类型相同或者子类方法的返回值类型是父类方法的返回值类型的 子类
6抽象类的产生
分析事物时,发现了共性内容,就出现向上抽取。会有这样一种特殊情况,就是方法功能声明相同,但方法功能主体不同。那么这时也可以抽取,但只抽取方法声明,不抽取方法主体。那么此方法就是一个抽象方法。
7 抽象类的定义格式
抽象方法定义的格式:
public abstract 返回值类型 方法名(参数);
抽象类定义的格式:
abstract class 类名 {
}
8 抽象类特点
抽象类和抽象方法都需要被abstract修饰。抽象方法一定要定义在抽象类中。
抽象类不可以直接创建对象,原因:调用抽象方法没有意义。
只有覆盖了抽象类中所有的抽象方法后,其子类才可以创建对象。否则该子类还是一个抽象类。
之所以继承抽象类,更多的是在思想,是面对共性类型操作会更简单。
9 抽象关键字abstract不可以和哪些关键字共存?
private:私有的方法子类是无法继承到的,也不存在覆盖,
abstract:abstract既要子类去实现这个方法,而private修饰子类根本无法得到父类这个方法。互相矛盾。
this
抽象类,可以没有抽象方法,可以定义带有方法体的方法
让子类继承后,可以直接使用
Java_10 继承的更多相关文章
- Java_10.1继承应用
/* * 描述学生和工人两个类 name age进行抽取 ,父类 Person 提供set get * 同时创建学生和工人对象 必须明确年龄和姓名 并且控制台输出 * */ ...
- javaScript的原型继承与多态性
1.prototype 我们可以简单的把prototype看做是一个模版,新创建的自定义对象都是这个模版(prototype)的一个拷贝 (实际上不是拷贝而是链接,只不过这种链接是不可见,给人们的感觉 ...
- JavaScript的继承实现方式
1.使用call或apply方法,将父对象的构造函数绑定在子对象上 function A(){ this.name = 'json'; } function B(){ A.call(this); } ...
- javascript中的继承与深度拷贝
前言 本篇适合前端新人,下面开始...... 对于前端新手来说(比如博主),每当对js的对象做操作时,都是一种痛苦,原因就是在于对象的赋值是引用的传递,并非值的传递,虽然看上去后者赋值给了前者,他们就 ...
- 谈谈一些有趣的CSS题目(四)-- 从倒影说起,谈谈 CSS 继承 inherit
开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...
- JS继承类相关试题
题目一: //有关于原型继承的代码如下:function Person(name) { this.name = name;}Person.prototype = { getName : f ...
- JS继承之寄生类继承
原型式继承 其原理就是借助原型,可以基于已有的对象创建新对象.节省了创建自定义类型这一步(虽然觉得这样没什么意义). 模型 function object(o){ function W(){ } W. ...
- JS继承之借用构造函数继承和组合继承
根据少一点套路,多一点真诚这个原则,继续学习. 借用构造函数继承 在解决原型中包含引用类型值所带来问题的过程中,开发人员开始使用一种叫做借用构造函数(constructor stealing)的技术( ...
- JS继承之原型继承
许多OO语言都支持两种继承方式:接口继承和实现继承.接口继承只继承方法签名,而实现继承则继承实际的方法.如前所述,由于函数没有签名,在ECMAScript中无法实现接口继承.ECMAScript只支 ...
随机推荐
- VBS处理AD帐号密码到期提醒的脚本[zt]
原文:https://gallery.technet.microsoft.com/scriptcenter/f7f5f7ed-14ee-4d0e-81c2-7d95ce7e08f5 '======== ...
- 10.mysql-触发器.md
目录 定义 语法 定义 当操作了某张表时,希望同时触发一些动作/行为,可以使用触发器完成 语法 -- 需求: 当向员工表插入一条记录时,希望mysql自动同时往日志表插入数据 -- 创建触发器(添加) ...
- overload重载
方法的重载 /** * 重载 overload * @author Administrator *同一个类,同一个方法 *不同:参数列表不同(类型,个数,顺序) 只和 参数列表有关 * 跟 返回值 和 ...
- IP/IGMP/UDP校验和算法
校验和算法:IP.IGMP.UDP和TCP报文头部都有检验和字段,其算法都是一样的. IP.IGMP.UDP和TCP校验和的范围:仅报文头部长度. 在发送数据时,为了计算数据包的检验和.应该按如下步骤 ...
- C++ 设置透明背景图片
背景: 有两个图片,一个是目标背景图片, 一个是带有自身背景色彩的彩色图片 先将这彩色图片绘制到目标背景图片中, 这一步通过BITBLT就可实现. 但实 ...
- unity 数学公式
Mathf.Abs绝对值 计算并返回指定参数 f 绝对值. Mathf.Acos反余弦 static function Acos (f : float) : float 以弧度为单位计算并返回参数 f ...
- ztree根据treeId展开指定节点并触发单击事件
ztree.expandNode(ztree.getNodeByParam("id",treeId,null));//展开指定节点 ztree.selectNode(ztree.g ...
- 吴裕雄 oracle PL/SQL编程
- 吴裕雄 13-MySQL UPDATE 查询
以下是 UPDATE 命令修改 MySQL 数据表数据的通用 SQL 语法:UPDATE table_name SET field1=new-value1, field2=new-value2[WHE ...
- React开发调试工具--react-developer-tools
1. 首先,下载react-developer-tools开发调试工具插件. 因为谷歌插件下载需要FQ,这里提供一个本地资源:https://www.crx4chrome.com/crx/3068/ ...