`
bluenemo
  • 浏览: 179103 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java基础知识温故知新(二、重载和重写)

阅读更多

一、方法重载(overloading method)

 

      方法重载是让类以统一的方式处理不同类型数据的一种手段。Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法, 这就是多态性。

 

一个方法重载的例子

class MethodOverloading {

  void receive(int i) {

  System.out.println("Received one int data");

  System.out.println("i="+i);

  }

  void receive(float f) {

  System.out.println("Received one float data");

  System.out.println("f="+f);

  }

  void receive(String s) {

  System.out.println("Received a String");

  System.out.println("s="+s);

  }

  public static void main(String [] args){

  MethodOverloading m = new MethodOverloading();

  m.recieve(3456);

  m.recieve(34.56f);

  m.recieve("方法重载");

  }

  注意,Java的方法重载要求同名的方法必须有不同的参数表,仅有返回类型不同是不足以区分两个重载的方法。

 

方法重载具体规范

     一.方法名一定要相同。

  二.方法的参数表必须不同,包括参数的类型或个数,以此区分不同的方法体。

  1.如果参数个数不同,就不管它的参数类型了!

  2.如果参数个数相同,那么参数的类型或者参数的顺序必须不同。

  三.方法的返回类型、修饰符可以相同,也可不同。

 

 

二、方法重写(overiding method)

 

      在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。 若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。 如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类。

方法重写的特性

  关于方法重写的一些特性:

  1.发生方法重写的两个方法返回值、方法名、参数列表必须完全一致(子类重写父类的方法)

  2.子类抛出的异常不能超过父类相应方法抛出的异常(子类异常不能大于父类异常)

  3.子类方法的访问级别不能低于父类相应方法的访问级别(子类访问级别不能低于父类访问级别)

  根据2,3条是不是能确定第一条,子类方法的返回值必须是父类方法返回值的子类。

分享到:
评论

相关推荐

    温故知新,通过学习尚学堂飞机游戏项目,理解Java语言基础知识.zip

    在本项目"温故知新,通过学习尚学堂飞机游戏项目,理解Java语言基础知识.zip"中,我们可以深入探讨Java编程语言的基础知识,并结合实际的游戏开发经验来加深理解。这是一个非常适合初学者或者想要巩固Java基础的...

    java基础知识总结(超级经典)

    【标题】"Java基础知识总结(超级经典)"是一个涵盖了Java编程语言核心概念的综合学习资源,旨在帮助初学者和有经验的开发者巩固与提升Java技术。这个资料可能包含了类与对象、封装、继承、多态、异常处理、集合框架、...

    java基础知识30个经典问答

    这篇博客"java基础知识30个经典问答"通过问答形式,详细解答了Java学习中常见的问题,帮助初学者巩固基础,同时也适合有经验的开发者温故知新。下面,我们将深入探讨这些问答中的关键知识点。 1. **什么是Java?** ...

    50道JAVA基础编程练习题

    8. 多态:学习多态性在Java中的表现,包括方法的重写和重载,以及接口的使用。 9. 异常处理:理解try-catch-finally结构,学习如何抛出和捕获异常,以及自定义异常的创建。 10. 集合框架:熟悉ArrayList、...

    Java核心技术 卷1 基础知识 原书第10版

    通过阅读《Java核心技术 卷1 基础知识》原书第10版,初学者可以系统地学习Java编程,而经验丰富的开发者也可以从中温故知新,加深对Java语言的理解。这本书的PDF电子书版本提供了高清的阅读体验,并带有索引书签目录...

    java基础项目(35个java游戏)javalearnsa资料分享

    在这个“java基础项目(35个java游戏)”中,我们可以深入理解Java的基础知识,并通过实际的游戏开发项目来提升编程技能。这个资料分享是针对那些想要在Java编程领域打下坚实基础的学习者,特别是对游戏开发感兴趣的...

    java基础课程教学ppt

    每个MyLecture-OOP(第X讲).ppt文件可能对应一个或多个上述知识点的详细讲解,从基础概念到实际应用,帮助学习者逐步掌握Java编程的核心技巧和思维方式。通过深入学习和实践,开发者将能够运用Java解决实际问题,开发...

    Java编程复习代码

    在本资源"Java编程复习代码"中,作者通过实践编程的方式深入复习了Java的基础知识,主要涵盖了以下几个核心领域: 1. **字符串(String)**:在Java中,字符串是常用的数据结构,用于存储和处理文本信息。这里可能...

    Java数据结构和算法中文第二版

    这本书涵盖了数据结构和算法的基础知识,对于学习和提升Java编程能力,尤其是解决复杂问题的能力,具有极大的帮助。标签中提及的“Java数据结构和算法”、“数据结构和算法java 版”以及“数据结构和算法教程”,都...

    Java实验指导书 2009

    本实验指导书旨在帮助学生掌握Java编程的基础知识和高级特性,通过一系列的实验任务,加深对Java语言的理解,并能够独立完成简单的Java应用程序的开发。 **实验内容的设计与使用:** 实验内容被精心设计为九种类型...

    java学习成套ppt

    【Java学习成套PPT】是一份全面的Java学习资源,包含了从基础知识到高级框架的系统教程。这个压缩包中的内容旨在帮助初学者逐步掌握Java编程语言,同时也适合有一定经验的开发者温故知新或者深入特定领域。让我们...

    JAVA经典100例

    "JAVA经典100例"是一个专为初学者设计的教程,它涵盖了Java编程的基础到进阶知识,旨在帮助新手快速掌握Java编程技能。这个压缩包文件包含了100个精心挑选的Java代码实例,每一个例子都是一个独立的知识点,通过实践...

    经典的java小程序源代码合集

    在实现这个程序时,开发者可能使用了二维数组来存储游戏板状态,学习到了循环、条件判断、动态对象创建等基础知识。同时,游戏的动画效果涉及到定时器的使用,以及对用户输入的实时响应,这些都是Java编程中的重要...

    [21天学通Java.6(第5版)].Rogers.Cadenhead&Laura;.Lemay.扫描版

    《21天学通Java.6(第5版)》是由Rogers Cadenhead和Laura Lemay合著的一本经典Java编程入门书籍。这本书针对初学者,旨在帮助读者在21天内掌握Java 6的基本概念和技术。下面将详细阐述这本书中涵盖的重要知识点。 1....

    Building Java Programs

    3. **基础知识**: 书中的“Back To Basics”意味着它会从编程的基本语法开始,如变量、数据类型、运算符、流程控制(条件语句、循环)、方法等,确保读者掌握编程的基础工具。 4. **类与对象**: Java中的所有事物都...

    JAVA课件 java 课件都有简易和复杂,我这个够简易的了。

    本课件集合旨在提供一个简单易懂的学习路径,适合初学者和有一定基础的开发者温故知新。 首先,Java的核心概念包括类、对象、封装、继承和多态。这些是理解Java编程的基础。类是对象的模板,它定义了一组特性和行为...

    基于“四线”的Java程序设计教学方法研究 (1).pdf

    在温故知新第一条学习途径中,学生学习了Java语言的基本语法和程序结构,但学生可能会面临着这样的困惑,两种语言既然如此相似,为什么还需要发明Java语言,Java语言为什么会如此大行其道?本文通过介绍Java语言的...

    旨在打造在线最佳的 Java 学习笔记.rar

    在学习Java中,常常碰到...这套JavaSE教程基于Java17讲述,从零基础出发,讲解Java编程的基础知识和实践技巧,涵盖了Java编程的方方面面。 原文链接:https://blog.csdn.net/2301_78369729/article/details/130947974

Global site tag (gtag.js) - Google Analytics