java中的继承重载覆盖

java中的继承重载覆盖

ID:34707857

大小:48.17 KB

页数:3页

时间:2019-03-09

java中的继承重载覆盖_第1页
java中的继承重载覆盖_第2页
java中的继承重载覆盖_第3页
资源描述:

《java中的继承重载覆盖》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Java中的继承、重载、覆盖、第一节继承的概念1.1.1为什么使用继承使一个类的数据成员和成员方法可以被另一个类(派生类或子类)重用。继承的特性实现了真正意义上的代码复用,子类可以从父类继承所有非private的数据成员和成员方法,以体现其共性。在子类中也可以新定义一些自己特有的数据成员和成员方法,以体现其个性。1.1.2继承的格式:class子类名extends父类名{}继承通过extends关键字来实现的。第二节子类和父类的关系2.2.1方法之间方法覆盖是面向对象语言的特性,即父类中的一个方法在子类中获得重新定义,但是方法名、参数列表和返回值均不变

2、。2.2.2属性之间如果我们在子类定义了与父类相同的属性,那么我们称之为属性(数据成员)的隐藏。2.2.3构造器之间如果子类没有定义自己的构造方法,则它将自动调用父类的无参数的构造器。如果子类自己定义了构造器,则在创建对象时,它将先执行自父类的无参数的构造器,然后再执行自己的构造器。第四节super的意义和用法4.4.1定义super是一个关键字,代表父类对象的引用。4.4.2用法(1)用来访问直接父类隐藏的(属性)数据成员,其使用形式如下:super.数据成员;(2)用来调用直接父类中被覆盖的成员方法,其使用形式如下:super.成员方法(参数);(

3、3)用来调用直接父类的构造器,其使用形式如下:super(参数)。注意:super必须放在调用其构造器中的第一行,而且子类中覆盖方法可以通过super(…)来访问父类中被覆盖的方法,但只能访问其直接父类,而不能跨级访问。第五节覆盖与重载5.5.1 覆盖的概念方法覆盖是面向对象语言的特性,即父类中的一个方法在子类中获得重新定义,但是方法名、参数列表和返回值均不变。5.5.2 覆盖的规则(1)覆盖的方法之间必须拥有相同的方法名和参数列表,即要求参数列表中参数的个数、排列顺序以及参数的类型要相同。注意,参数的名称是否相同,不是覆盖的决定因素;(2)覆盖的方法

4、之间,其返回类型必须相同;(3)一个静态方法只能被覆盖方法为一个静态方法,但是不能被覆盖为一个非静态方法;(4)父类中被子类覆盖的方法,在每一个子类中,最多只能被覆盖一次;(5)覆盖方法的访问控制修饰符所定义的访问控制不能小于父类中被覆盖方法的访问控制修饰符定义的范围,即覆盖方法不能比原有方法访问范围窄;(6)覆盖方法声明的抛出异常,只能是被覆盖方法抛出异常的子类,或者一样,或者不抛出任何异常。5.5.3重载的概念方法重载是编程语言均有的特性,与面向对象语言无关,指多个方法拥有同一个名字,但每个方法都有一套自己的不同与其他同名方法的参数列表,这样编译器

5、可以根据不同的参数列表来调用相应的方5.5.4重载的规则(1)重载的方法之间必须拥有不同的参数列表,即要求参数列表中参数的个数、排列顺序或类型不同。参数的名称是否相同,不是重载的决定因素;(2)重载的方法必须在同一个类中定义,包括继承自父类中的方法,并且有两个或两个以上的同名、不同参数列表的方法存在;(3)重载方法的返回类型、访问修饰符以及抛出的异常,都不是重载方法判断的决定因素;(4)重载方法之间可以互相调用,如同不同方法的调用,只要明确参数列表即可;(5)一个静态方法既可以被重载为一个静态方法,也可以被重载为一个非静态方法,因为重载方法本质上是不同

6、的方法;(6)重载方法之间对修饰符和抛出的异常无限制,而覆盖方法之间对修饰符和抛出的异常具有限制条件,原则上要保持扩展性满足子类对父类的继承扩展的面向对象的特性。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。