重写方法规则如下:
* 变元列表必须与被重写的方法的变元列表完全匹配,如果不匹配,则得到的可能就是一个意想不到的重载方法
* 返回类型必须与超类中被重写方法中原先声明的返回类型或其子类型
* 访问级别的限制性一定不能比被重写方法的更严格
* 访问级别的限制性可以比被重写方法的弱
* 仅当实力方法被子类继承时,它们才能被重写
* 重写方法可以抛出任何未检验(运行时异常),无论被重写方法是否声明了该异常
*重写方法一定不能抛出比被重写方法声明的检验异常更新或更广的检验异常
* 重写方法可以抛出更少或更有限的异常
* 不能重写标识为final的方法
* 不能重写标识为static 的方法
* 如果方法不能被继承,那么不能重写它
重载方法:
* 重载方法必须改变变元列表
* 重载方法可以改变返回类型
* 重载方法可以改变访问修饰符
* 重载方法可以声明新的或更广的异常
* 方法能够在同一个类或者同一个子类中被重载
实现接口:
未来成为合法的实现类,非抽象实现类必须执行以下操作:
* 为来自所声明接口的所有方法提供具体的实现
* 遵守合法重写的所有规则
* 在实现方法上声明非检验异常,而不是在接口方法上声明,也不是在接口方法上声明异常的子类
* 保持接口方法的签名,并且保持相同的返回类型(或子类型)但是不必声明在接口方法声明中声明过的异常
*接口可以extends 多个接口
* 接口不能implements 接口
|
重载
|
重写
|
变元
|
必须改变
|
一定不能改变
|
返回类型
|
可以改变
|
除协变式返回外,不能改变
|
异常
|
可以改变
|
可以减小或消除,一定不能抛出新的或更广的检验异常
|
访问级别
|
可以改变
|
一定不能执行更严格的限制
|
调用
|
引用类型决定重载哪个版本,在编译时刻做出决定,调用的实际方法仍然是一个在运行时发生的虚拟方法的调用,但是编译器总是知道所调用方法的签名。因此在运行时,不仅是方法所在的类,而且变元匹配也已经明确了
|
对象类型(也就是对上实际的实例类型)决定了调用哪个方法在运行时作出的决定
|
分享到:
相关推荐
易语言面向对象学习 1 一.枯燥的理论 2 1.对象和类 2 2.类的“成员”与“方法” 2 3.实例化 2 4.继承 3 二.牛刀小试 3 1.定义一个类,生成实例对象 3 2.“_初始化” 与 “_销毁” 5 三.一个更丰富的“员工...
面向对象编程是计算机语言的一种先进的编程模式,在工业控制系统的PLC程序中也可以采用这种设计思想,虽然我们无法实现面向对象的很多特点如“继承”,甚至于它根本就不具备面向对象编程语言的特点,但面向对象编程...
面向对象是目前最流行的一种程序设计和实现思想,无论你是从事企业级开发、互联网应用开发,还是手 机软件开发,都会使用到面向对象的技术;主流的编程语言中,C++,Java,C#,PHP,Python等都是支持 面向对象的语言;...
面向对象概要设计模板 面向对象设计是一种软件设计方法,它强调对象之间的交互和协作,以达到软件系统的高内聚、低耦合的目标。在软件设计中,面向对象设计方法可以帮助开发者更好地理解系统的需求和行为,从而提高...
本教程“实用面向对象软件工程教程”旨在深入探讨面向对象分析(OOA)和面向对象设计(OOD)的关键原则,帮助开发者构建高质量、可维护的软件系统。 在面向对象分析阶段,我们首先理解问题域,识别出关键实体和它们...
Python 是一种面向对象的解释型语言,面向对象是其非常重要的特性。《Python 3面向对象编程》通过Python 的数据结构、语法、设计模式,从简单到复杂,从初级到高级,一步步通过例子来展示了Python 中面向对象的概念...
详细介绍了面向对象的分析与设计,全面探讨了面向对象概念、软件开发过程、UML和多层技术。本书使用最常见的技术和方法,通过一个贯穿全书的案例分析,对面向对象的软件开发过程和使用面向对象技术的编程过程进行了...
面向过程、面向对象、面向组件、面向服务软件架构的分析与比较 软件开发历程与架构演进 软件开发从汇编语言、过程式语言、面向对象、面向组件发展到面向服务,这一进程不仅反映了编程技术的不断进步,更是软件工程...
面向对象分析(Object-Oriented Analysis,OOA)是软件工程中的一种重要方法,它着重于从实际问题出发,抽象出问题域内的对象及其相互关系,以构建问题域模型。在“软件工程-张海藩编著--面向对象分析实验报告”中,...
《面向对象软件工程》 作者:Stephen.R.Schach 学校:(美)范德比尔特大学 书名原名:Objected-Oriented Software Engineering 目录: 第一部分 面向对象软件工程简介 第一章 面向对象软件工程的范畴 第二章 ...
本书内容由浅入深,紧密结合实际,利用大量典型实例,详细讲解Java面向对象的编程思想、编程语法和设计模式,介绍常见Java类库的用法,总结优化 Java编程的各种宝贵经验,深入阐述Java虚拟机执行Java程序的原理。...
借助于漫画展示的形式,面向对象的简、由类创建一个对象的方法、类的编写与对象的创建、类的构造函数、类的方法、修饰符、Java中的封装/继承/多态等特征、Java中的线程、用Java创建一个小世界、多线程共享数据,以及...
C++是一种强大的编程语言,以其面向对象特性而闻名,它结合了过程化编程和面向对象编程的优势。在“C++面向对象程序设计教程——课件PPT”中,我们可以深入学习这一主题,由陈维兴和林小茶编著,清华大学出版社出版...
### 面向对象JavaScript精要 #### 一、书籍概览 本书《面向对象JavaScript精要》由Nicholas C. Zakas编写,是面向对象编程领域中的权威指南之一,尤其针对JavaScript这门语言。作者深入浅出地介绍了面向对象编程的...
Matlab面向对象编程是一种在MATLAB环境下通过面向对象的方法来组织和构造程序代码的技术。面向对象编程(OOP)的基本特征包括抽象、封装、继承和多态。以下是根据给定的文件信息,对这些知识点的详细解释: 1. 抽象:...
国外计算机科学经典教材-面向对象分析与设计(UML 2.0版) 简介:本书详细介绍了面向对象的分析与设计,全面探讨了面向对象概念、软件开发过程、UML和多层技术。 本书使用最常见的技术和方法,通过一个贯穿全书的...
由于提供的文件内容不包含实际的文本信息,而是重复的URL链接,因此无法从该部分提供有关面向对象分析与设计(OOAD)的知识点。但是,我将尽可能详细地介绍面向对象分析与设计的相关知识点,以满足您的需求。 面向...