重载VS重写
一、什么是重载?
重载是一种静态地多态机制,通过相同的方法名来实现不同的方法。
重点:
1)那么是如何达到相同的方法名实现不同的方法的呢?——根据方法体的实参和型参来决定相应的方法。
2)构造方法和普通方法都可以重载,但是构造方法没有返回类型。
3)私有的重载方法不能被生成的对象直接调用
实例分析:
package TextExtends;
/**
* 学生类
* @author Sean 2012 - 8
*/
public class Student {
/**
* 重载方法
* @param number
*/
public void print(String number){
System.out.println("学号:"+number);
}
/**
* 重载方法一
* @param number
* @param name
*/
void print(String number,String name){
System.out.println("学号:"+number+" 姓名:"+name);
}
/**
* 重载方法二
* @param number
* @param name
* @param age
*/
void print(String number,String name,int age){
System.out.println("学号:"+number+" 姓名:"+name+" 年龄:"+age);
}
/**
* 重载方法三
* @param number
* @param name
* @param age
* @param score
*/
void print(String number,String name,int age,double score){
System.out.println("学号:"+number+" 姓名:"+name+" 年龄:"+age+" 分数:"+score);
}
}
package TextExtends;
/**
* 主程序类
* @author Sean 2012 - 8
*/
public class Master {
/**
* 主程序入口
* @param args
*/
public static void main(String[] args) {
/**
* 创建三个学生信息
*/
Student student1 = new Student();
Student student2 = new Student();
Student student3 = new Student();
Student student4 = new Student();
/**
* 显示学生信息
*/
student1.print("000001");
student2.print("000002", "李四");
student3.print("000003","王五",17);
student4.print("000003","赵六",18,89.78);
}
}
在代码中Student类中重载了四个print方法,在主程序中调用方法时,会根据调用时使用的参数来决定调用相应的方法。
结果显示:
学号:000001
学号:000002 姓名:李四
学号:000003 姓名:王五 年龄:17
学号:000003 姓名:赵六 年龄:18 分数:89.78
二、什么是重写?
重写就是重写创建父类的方法;因此重写的前提是拥有继续关系。
重点:
1)在父类中已有的方法可以在子类中重写(重新创建);如果想要使用子类重写的方法,可以采用子类定义子类(子类 对象名 = new 子类();)或父类定义子类(父类 对象名 = new 子类();)
2)父类中私有方法是不能被重写的。
实例分析:
package TextRewrite;
/**
* 学生类
* @author Sean 2012 - 8
*/
public class Student {
/**
* 定义了一个方法
*/
void print(){
System.out.println("我是父类!!!");
}
}
package TextRewrite;
/**
* 大学生类
* @author Sean 2012-8
*/
public class CollegeStudent extends Student{
/**
* 重写父类中的print方法
*/
public void print(){
System.out.println("我是子类中的方法!!!");
}
}
package TextRewrite;
/**
* 主程序类
* @author Sean 2012 - 8
*/
public class Master {
/**
* 主程序入口
* @param args
*/
public static void main(String[] args) {
/**
* 创建三个学生信息
*/
Student student1 = new Student();
Student student2 = new CollegeStudent();
CollegeStudent student3 = new CollegeStudent();
/**
* 调用对象中的print方法
*/
student1.print();
student2.print();
student3.print();
}
}
显示结果:
我是父类!!!
我是子类中的方法!!!
我是子类中的方法!!!
分享到:
相关推荐
Java中的重载(Overloading)和重写(Overriding)是面向对象编程中两个重要的概念,它们体现了Java的多态性。多态性是面向对象编程的三大特性之一,另外两个是封装和继承。 首先,让我们详细解释一下方法的重载。重载...
在C#编程语言中,重写、重载和多态是面向对象编程的三大核心特性,它们对于构建灵活、可扩展的代码结构至关重要。 首先,我们来看“重写”。重写(Override)允许子类对从基类继承来的方法进行重新定义,以便提供...
### C++中重载、重写(覆盖)与隐藏的概念及区别 #### 一、引言 在C++面向对象编程中,理解重载、重写(覆盖)以及隐藏的概念至关重要。这些概念不仅有助于我们更好地设计类和继承体系,还能帮助我们避免一些常见的...
重载与覆写/重写的区别 区别 重载 覆写 1 单词 OverLoading Override 2 概念 方法名称相同,参数的类型或个数不同 方法名称相同,参数的类型或个数相 同,返回值类型相同 3 范围 发生在一个类之中...
### 重载、重写、覆盖与多态的深刻剖析 在面向对象编程语言中,如Java、C#等,重载(Overloading)、重写(Overriding)、覆盖(也称为重写)以及多态(Polymorphism)是几个非常重要的概念。它们之间既有关联又有...
"java 重载,重写以及继承,多态的区别" Java 中的重载、重写、继承和多态是四个不同的概念,它们之间存在一定的关系,但也存在明显的区别。 重载(Overload) 重载是指在同一个类中可以定义多个同名的方法,但这些...
Java 中重载和重写总结 Java 中的重载(Overloading)和重写(Overriding)是两个非常重要的概念,它们都是多态性的体现形式。 一、Java 中的重载(Overloading) Java 中的重载是指在同一个类中可以创建多个...
### C++中重载与重写函数的区别及虚函数详解 #### 一、虚函数概述 **1.1 虚函数定义与作用** 在C++中,虚函数是一种特殊的成员函数,它允许子类覆盖父类的行为。虚函数的核心在于实现多态性,即在运行时动态决定...
总结来说,重载、重构和重写是C#中非常重要的概念,它们分别涉及方法的命名、代码结构的优化以及继承关系中的方法实现。掌握这些概念有助于编写更高质量的代码,并能够更好地应对未来的需求变化。
在编程语言中,方法重载(Overloading)和方法重写(Overriding)是两个非常重要的概念,它们都是实现多态性(Polymorphism)的关键机制。本文将深入探讨这两个概念,以及它们在实际编程中的应用。 ### 方法重载...
Java编程语言中的重载(Overloading)和重写(Overriding)是两个关键的概念,它们都是多态性的重要体现,但各自有着不同的含义和规则。 首先,我们来详细了解一下方法的重载。重载,简单来说,就是在一个类中定义多个...
在C++编程语言中,"重载"(Overloading)、"重写"(Overriding)和"重定义"(Redefinition)是三个关键的概念,它们对于理解和掌握面向对象编程至关重要。下面将详细阐述这三个概念及其在实际编程中的应用。 **1. ...
在Java编程语言中,方法的重载(Overloading)与重写(Overriding)是两个非常重要的概念。它们虽然只有一字之差,但其实质却大相径庭。理解这两者的不同对于深入掌握Java语言至关重要。 ### 一、重载(Overloading...
总结起来,继承、多态、重载和重写是面向对象编程中的核心概念,它们相互关联,共同构建出灵活、可扩展的代码结构。通过继承,我们可以构建类的层次结构,多态则提供了代码的通用性和灵活性。而重载和重写则是实现...
Java中的重载(Overloading)和重写(Overriding)是面向对象编程中的两种关键特性,它们涉及到方法的多态性。理解这两者的区别对于编写高效、可维护的代码至关重要。 **重载(Overloading)**是指在一个类中,可以有多个...
### Java 方法的艺术:重载与重写的深度解析 在 Java 编程语言中,方法的重载(Overloading)和重写(Overriding)是面向对象编程的重要概念。这两种技术使得方法能够在不同的上下文中表现出不同的行为,从而增强了...
### 重写与重载的区别 #### 一、概述 在面向对象编程中,方法的重写(Overriding)和重载(Overloading)是非常重要的概念。这两种机制可以帮助程序员更灵活地管理和组织代码,提高代码的复用性和可扩展性。 ####...
1、重载 方法的重载是同一个类中多态性的一种表现。 方法重载须遵循如下两条规则 (1)方法名相同。 (2)参数列表不同。 注意:方法的返回值类型不能用来区分重载的方法。这是因为当调用一个方法时...
重载和重写--java