Java中父类方法重写有哪些需要注意的?

news/2024/7/5 1:40:03

  在继承关系中,子类会自动继承父类中公共的方法,但有时在子类中需要对继承的方法进行一些修改,即对父类的方法进行重写。需要注意的是,子类中重写的方法需要和父类被重写的方法具有相同的方法名、参数列表以及返回值类型。

  在上一节案例中,Dog类从Animal类继承了shout()方法,该方法在被调用时会打印“动物发出叫声”,这显然不能描述一种动物的具体叫声,Dog类对象属于犬类,发出的叫声应该是“汪汪”。为了解决这个问题,可以在Dog类中重写父类Animal中的shout()方法,如文件1所示。

  // 定义Animal类

  class Animal {

  //定义动物叫的方法

  void shout() {

  System.out.println("动物发出叫声");

  }

  }

  // 定义Dog类继承动物类

  class Dog extends Animal {

  // 定义狗叫的方法

  void shout() {

  System.out.println("汪汪……");

  }

  }

  // 定义测试类

  public class Example02 {

  public static void main(String[] args) {

  Dog dog = new Dog(); // 创建Dog类的实例对象

  dog.shout(); // 调用Dog类重写的shout()方法

  }

  }

  运行结果如图1所示。

1

  文件1中,定义了Dog类并且继承自Animal类。在子类Dog中定义了一个shout()方法对父类的方法进行重写。从运行结果可以看出,在调用Dog类对象的shout()方法时,只会调用子类重写的方法,并不会调用父类的shout()方法。

  注意:

  子类重写父类方法时,不能使用比父类中被重写的方法更严格的访问权限。如:父类中的方法访问权限是public,子类重写父类该方法的访问权限就不能是private。


http://lihuaxi.xjx100.cn/news/242674.html

相关文章

\\s+ split替换

出自: http://www.tuicool.com/articles/vy2ymm 详解 "\\s" 正则表达式中\s匹配任何空白字符,包括空格、制表符、换页符等等, 等价于[ \f\n\r\t\v] \f -> 匹配一个换页\n -> 匹配一个换行符\r -> 匹配一个回车符\t -> 匹配一个制表…

baidumap api MySQL_百度地图API开发笔记一(基础篇)

什么是百度地图API?百度地图API是一套由JavaScript语言编写的应用程序接口,它能够帮助您在网站中构建功能丰富、交互性强的地图应用。百度地图API包含了构建地图基本功能的各种接口,提供了诸如本地搜索、路线规划等数据服务。测试js API代码(…

mysql 匹配 findinset

SELECT FS_ITEM_DESC FROM dictionary WHERE FS_TYPE prizeType AND FIND_IN_SET(FS_ITEM_CODE,(SELECT AWARDS FROM tb_textbook WHERE TEXTBOOK_ID 1)) FIND_IN_SET ,在一串有律字符串中查找关键字,返回匹配成功的行例 : FIND_IN_SET(1,1…

学web前端需要了解哪些常识

想要学好web前端技术,那么一定要掌握足够的知识,web前端技术包含很多方面的知识,具体学web前端需要了解哪些常识?来看看下面的详细介绍。 学web前端需要了解哪些常识? html css javascript。 要学的内容实在很多,如果没有其他编…

如何独立开发一个网络请求框架

(原创出处为本博客:http://www.cnblogs.com/linguanh/) 目录: 前言 准备工作 开发模式 开发原则 线程 高并发 TCP/UDP 本类介绍 开发选择 功能列表 优点 拓展 完整代码 用法例子 前言: 已开源到GitHub,希望…

获取 metadata 的完整例子 - 每天5分钟玩转 OpenStack(166)

我们将通过实验详细分析 instance 从 nova-api-metadata 获取信息的完整过程。 环境介绍 1. 一个 all-in-one 环境(多节点类似)。 2. 已创建 neutron 网络 test_net,DHCP 已启动。在这个 metadata 实验中, test_net 的 type 不重要…

mysql innodb_data_file_path_关于innodb_data_file_path设置

关于innodb_data_file_path设置启动Mysql时报错,无法正常启动,通过日志发有数据文件大小错误,日志如下截图:[ERROR] InnoDB: auto-extending data file /usr/local/mysql/data/ibdata1 is of a different size 768 pages (rounded…

学习UI设计需要用到哪些工具

UI设计在近几年受到了很多人的关注,越来越多的人都想要进入到UI设计这个行业,学习UI设计的人越来越多,小编下面就为大家详细的介绍一下学习UI设计需要用到哪些工具?希望能帮助到正在学习UI设计的同学们。 学习UI设计需要用到哪些工具? 一、…