Java多态特性:重载和覆写的比较

Java重载:

  • 在同一个类中
  • 方法具有相同的名字,相同或不同的返回值,但参数不同的多个方法(参数个数或参数类型)
public class MethoDemo{
	public static void main(String args[]){
		int one = add(10,20) ;		// 调用整型的加法操作
		float two = add(10.3f,13.3f) ;	// 调用浮点数的加法操作
		int three = add(10,20,30) ;	// 调用有三个参数的加法操作
		System.out.println("add(int x,int y)的计算结果:" + one) ;
		System.out.println("add(float x,float y)的计算结果:" + two) ;
		System.out.println("add(int x,int y,int z)的计算结果:" + three) ;
	}
	// 定义方法,完成两个数字的相加操作,方法返回一个int型数据
	public static int add(int x,int y){
		int temp = 0 ;			// 方法中的参数,是局部变量
		temp = x + y ;			// 执行加法计算
		return temp ;			// 返回计算结果
	}
	public static int add(int x,int y,int z){
		int temp = 0 ;			// 方法中的参数,是局部变量
		temp = x + y + z ;			// 执行加法计算
		return temp ;			// 返回计算结果
	}
	// 定义方法,完成两个数字的相加操作,方法的返回值是一个float型数据
	public static float add(float x,float y){
		float temp = 0 ;		// 方法中的参数,是局部变量
		temp = x + y ;			// 执行加法操作
		return temp ;			// 返回计算结果
	}
};

输出结果:

add(int x,int y)的计算结果:30

add(float x,float y)的计算结果:60

add(int x,int y,int z)的计算结果:23.6

Java覆写:

  • 子类覆写父类的方法,在不同的类中
  • 重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型
  • 重写方法不能使用比被重写方法更严格的访问权限
class Person{		// 定义父类
	void print(){	// 默认的访问权限
		System.out.println("Person --> void print()。") ;
	}
};
class Student extends Person{	// 定义继承关系
	public void print(){
		System.out.println("Student --> void print()。") ;
	}
};
public class OverrideDemo{
	public static void main(String args[]){
		Student s = new Student() ;
		s.print() ;
	}
};

输出结果:

Student --> void print()。

小结:

java的三大特性:封装,继承,多态.而方法的重载和覆写正是多态的体现.

Java多态特性:重载和覆写的比较,布布扣,bubuko.com

时间: 2024-10-27 13:08:43

Java多态特性:重载和覆写的比较的相关文章

在Java中的重载和覆写

在看Java的书的时候,看到了重载和覆写这段时,有一些不理解,后来慢慢的弄懂了.现在把我的一些想法记录下来. 重载是指的在一个方法里面,可以使用不同的方法名,但是由于传入值数量或者类别上的不同,执行的方法就会不同. package czfx; public class czfx{ public static void main(String args[]){ class_one p=new class_one(); p.talk(); p.talk(2); p.talk(1,2); }}clas

java重载与覆写

很多同学对于overload和override傻傻分不清楚,建议不要死记硬背概念性的知识,要理解着去记忆. 先给出我的定义: overload(重载):在同一类或者有着继承关系的类中,一组名称相同,参数不同的方法组.本质是对不同方法的称呼. override(覆写):存在继承关系的两个类之间,在子类中重新定义了父类中存在的方法.本质是针对同一个方法,给出不同的实现. 我们先来看重载的例子: public class OverloadParent{ public String getPerson(

Java重载、覆写、this、super、抽象类、接口

第一.重载和覆写 1) 重载:方法名相同,参数类型和个数不同,典型的是构造方法的重载  覆写:方法名.参数类型.返回值类型全部相同,典型的是接口的实现: 2)重载对权限没有要求:覆写要求  被覆写的方法不能拥有更严格的权限: 3)重载发生再一个类中:覆写发生在继承类中. 第二.this和super 1)this访问本类中的属性(方法),如果本类中没有此属性(方法),则从父类中 继续寻找:super询问父类中的属性(方法): 2)调用本类构造,必须放在构造方法的首行:调用父类构造,必须放在子类构造

类的继承,方法的重载和覆写

在网易云课堂上看到唐大仕老师讲解的关于类的继承.方法的重载和覆写的一段代码,注释比较详细,在此记下以加深理解. 小总结: 1.类的继承:同类可以实例化(Student t=new Student(),Person p=new Person()),人类可以强制转换为学生类(Student t=(Student)Person),人类可以是学生类(Person p=new Student()): 2.方法的重载:只要求方法名称相同,返回类型.参数数目和参数类型都可以不相同: 3.方法的覆写:只有基类中

c++重载与覆写

重载:指子类改写了父类的方法,覆写:指同一个函数,同样的参数列表,同样的返回值的,但是函数内部的实现过程不同. 重载: 1.方法名必须相同. 2.参数列表必须不相同,与参数列表的顺序无关. 3.返回值类型可以不相同. 覆写:派生类重写基类的虚函数. 1.只有虚方法和抽象方法才能被覆写. 2.相同的函数名. 3.相同的参数类型. 4.相同的返回值类型.

Java 多态,重载,重写

1.多态(polymorphism): 多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定.这就是多态性.多态性增强了软件的灵活性和扩展性. 简单来说:发送消息给某个对象,让该对象自行决定响应何种行为. 通过将子类对象引用赋值给超类对象引用变量来实现动态方法调用. 多态须具备: a. 基类 和各个子类 b. 基

JAVA中继承时方法的重载(overload)与重写/覆写(override)

JAVA继承时方法的重载(overload)与重写/覆写(override) 重载-Override 函数的方法参数个数或类型不一致,称为方法的重载. 从含义上说,只要求参数的个数或参数的类型不一致就说两个函数是重载函数,而至于返回值是否一样,没关系.同时,重载可以发生在同一个类中也可以发生在继承关系中. class A { } class B extends A { public void fun(String data1) { System.out.println(data1); } pub

浅谈Java三大特性之多态

目录 一.前言 二.发生的条件 三.多态包含(或者说体现在)两个方面: 四.示例 感谢阅读 一.前言 这篇讲下三大特性之一的多态,可以通俗得去理解,多种形态,多种姿态... 那么在面向对象的程序设计中,多态是 指什么? Java引用变量有两个类型:一个是编译类型,一个是运行时类型.编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定.如果编译类型和运行时类型不一致,就可能出现所谓的多态(Polymorphism) "多形性"(Polymorphism)从另一个角

Java 覆写初探

Java 覆写 继承性的主要特征是子类可以根据父类已有的功能进行功能扩展,但是在子类定义属性或方法的时候有可能定义属性和方法和父类同名,在此类情况下就称为:“覆写”. 方法的覆写:[改良原本功能不足的方法] 子类定义的方法与父类方法名称相同.参数的类型及个数.返回值相同的方法. class A { public void fun() { System.out.println("A.fun()方法") ; } } class B extends A { public void fun()