Java中方法重写的应用

方法重写的应用

  当子类需要父类的功能,而功能的主体子类还有自己特有的内容时,可以重写父类中的方法,这样,即沿袭了父类的功能,又定义了子类自己特有的内容。

 1 /*
 2     方法重写:子类中出现了和父类中方法声明一模一样的方法(方法名、参数列表和返回值类型都一样),也被称为方法覆盖、方法复写。
 3     
 4     方法重载:本类中出现的方法名一样,参数列表不同,与返回值无关的方法。
 5 
 6     子类的成员方法名称和父类中的成员方法名称一样时,这个怎么访问呢?
 7         通过子类对象访问一个成员方法的查找顺序:
 8             1.在子类的成员方法中找,有就使用。
 9             2.在父类的成员方法中找,有就使用。
10             3.都找不到,就报错。
11         
12     方法重写的应用:
13         当子类需要父类的功能,而功能的主体子类还有自己特有的内容时,可以重写父类中的方法,
14         这样,即沿袭了父类的功能,又定义了子类自己特有的内容。
15         
16     案例:
17         A:定义一个手机类。
18         B:通过研究,我发明了一个新手机,这个手机的作用是在打完电话后,可以听天气预报。
19             按照我们基本的设计,我们把代码给写出来了。
20             但是呢?我们又发现新手机应该是手机,所以,它应该继承自手机。
21             其实这个时候的设计,并不是最好的。
22             因为手机打电话功能,是手机本身就具备的最基本的功能。
23             所以,我的新手机是不用在提供这个功能的。子类注释掉打电话的功能,
24             但是,这个时候,打电话功能就没有了。这个不好。
25             最终,还是要加上这个功能。
26             由于它继承了手机类,所以,我们就直接使用父类的功能即可。
27             那么,如何使用父类的功能呢?通过super关键字调用即可。
28 */
29 
30 class Phone {
31     public void call(String name) {
32         System.out.println("给"+name+"打电话");
33     }
34 }
35 
36 class NewPhone extends Phone {
37     public void call(String name) {
38         //System.out.println("给"+name+"打电话");
39         super.call(name);//继承父类的功能
40         System.out.println("可以听天气预报了");//子类自己特有的功能。
41     }
42 }
43 
44 class ExtendsDemo9 {
45     public static void main(String[] args) {
46         NewPhone np = new NewPhone();
47         np.call("林青霞");
48     }
49 }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python小屋

Python标准库collections中与字典有关的类

Python标准库中提供了很多扩展功能,大幅度提高了开发效率。这里主要介绍OrderedDict类、defaultdict类和Counter类。 (1)Orde...

2816
来自专栏Java学习网

Java中有关Null的9问题

Java中有关Null的9问题 对于Java程序员来说,null是令人头痛的东西。时常会受到空指针异常(NPE)的骚扰。连Java的发明者都承认...

2215
来自专栏程序员互动联盟

【面试宝典】写一个函数将两个数交换

没有参加过面试的同学可能会很忐忑,面试都会出些什么题呢?其实一般情况下,大部分的面试题都是比较基础的。关于如何交换两个数字,应该是非常简单的问题了。看下面几个函...

3508
来自专栏noteless

[五]java函数式编程归约reduce概念原理 stream reduce方法详解 reduce三个参数的reduce方法如何使用

java8 流相关的操作中,我们把它理解 "累加器",之所以加引号是因为他并不仅仅是加法

2603
来自专栏大数据架构师专家

python实战系列之python变量

编程语言中为了能够更好的处理数据,都需要使用一些变量。Python 语言的变量可以是各种不同的数据类型,使用变量的时候不需要声明直接使用就可以。

881
来自专栏java一日一条

Java中有关Null的9件事

对于Java程序员来说,null是令人头痛的东西。时常会受到空指针异常(NPE)的骚扰。连Java的发明者都承认这是他的一项巨大失误。Java为 什么要保留nu...

892
来自专栏C语言及其他语言

C语言的数据类型

变量与常量数据 在程序的世界中,可以让计算机按照指令做很多事情,如进行数值计算、图像显示、语音对话、视频播放、天文计算、发送邮件、游戏绘图以及任何我们可以想...

4685
来自专栏java一日一条

Java中有关Null的9件事

对于Java程序员来说,null是令人头痛的东西。时常会受到空指针异常(NPE)的骚扰。连Java的发明者都承认这是他的一项巨大失误。Java为什么要保留nul...

622
来自专栏用户画像

7.5.2 基数排序

基数排序是一种很特别的排序方法,它不是基于比较进行排序的,而是采用多关键字排序思想,借助“分配”和“收集”两种操作对单逻辑关键字进行排序。基数排序又分为最高位优...

803
来自专栏好好学java的技术栈

Java提升篇:对象克隆(复制)

1523

扫码关注云+社区

领取腾讯云代金券