`
ganglong99
  • 浏览: 161364 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

Override与Overload规则总结

 
阅读更多

方法的重写(Overiding)和重载(Overloading)是Java多态性的不同的表现。

 

Overriding是父类与子类之间多态性的一种表现;

Overloading是一个类中多态性的一种表现。

 

Overriding:在子类中定义某个方法与其父类有相同的名称和参数;子类的对象使用这个方法时,将调用子类中的定义。

对它而言,父类中的定义如同被“屏蔽”了。

 

Overloading:在一个类中定义了多个同名的方法,它们或有不同的参数或有不同的参数类型或有不同的参数次序;不能通过访问权限、返回类型、抛出的异常进行重载。

 

Overiding

1、方法名、参数、返回值相同。

2、子类方法不能缩小父类方法的访问权限。

3、子类方法不能抛出比父类更多的异常(子类可以不抛出异常)。

4、存在于父类与子类之间。

5、方法被定义为final不能被重写。

 

Overloading

1、参数类型、个数、顺序至少有一个不相同。

2、不能重载只返回值不同的方法名。

3、存在于父类和子类、同类中。

 

Animal类

package wei.peng.overriding_overloading;

public class Animal {
	
	public void introduce(){
		
		System.out.println("我是动物!");
	}
}

Cat类

package wei.peng.overriding_overloading;

public class Cat extends Animal {
	
	//重写了父类的introduce,实现了overrding(重写)
	public void introduce(){
		System.out.println("我是一只猫!");
	}
	
	//实现了Overloading(重载)
	public void introduce(String name){
		System.out.println("我是一只猫, 我的名字叫:" + name);
	}
}

Dog类

package wei.peng.overriding_overloading;

public class Dog extends Animal {
	
	//重写了父类的introduce,实现了overrding(重写)
	public void introduce(){
		System.out.println("我是一只狗!");
	}
	
	//实现了Overloading(重载)
	public void introduce(String name){
		System.out.println("我是一只狗, 我的名字叫:" + name);
	}
}

测试类

Java代码 复制代码
  1. package wei.peng.overriding_overloading;   
  2.   
  3. public class Test {   
  4.   
  5.     public static void main(String[] args) {   
  6.   
  7.         //Overring是父类与子类之间多态性的一个表现:屏蔽父类的方法定义    
  8.         Animal animal1 = new Animal();   
  9.         Animal animal2 = new Cat();   
  10.         Animal animal3 = new Dog();   
  11.            
  12.         animal1.introduce();   
  13.         animal2.introduce();   
  14.         animal3.introduce();   
  15.            
  16.         //Overloading是在一个类中定义多个同名方法   
  17.         Cat cat = new Cat();   
  18.         cat.introduce();   
  19.         cat.introduce("JACK");   
  20.     }   
  21.   
  22. }  
分享到:
评论

相关推荐

    Java重写(Override)&重载(Overload).pdf

    Java中的重写(Override)和重载(Overload)是面向对象编程中的两个核心概念,它们都是为了提高代码的灵活性和可复用性。 **重写(Override)** 是指子类能够重新定义父类中非私有(public或protected)的方法,以便在...

    C++中overload,override,overwrite的区别详细解析

    Overload(重载):在C++程序中,可以将语义、功能相似的几个...Overwrite(重写):是指派生类的函数屏蔽了与其同名的基类函数,规则如下:(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtua

    PHP和JAVA中的重载(overload)和覆盖(override) 介绍

    重载(overload)与覆盖(override)是面向对象编程中的两个重要概念,它们在不同的编程语言中表现出来的特性略有不同,尤其在PHP和JAVA这两种广泛使用的语言中表现得尤为明显。 首先,重载(overload)是指在同一个类中...

    C++中Overload,Override,Hide之间的区别

    简介•Overload: 重载,指函数同名,但是参数个数不同、或者参数类型不同的多个实现。(如果参数相同但是仅仅返回值不同不是重载,编译器会报错。) 编译器判断重载函数:•第一步,是确定该调用中所考虑的重载函数...

    java面试题集锦 和适合初学者

    2. **方法重写与重载(Override & Overload)** - 方法重载(Overload)指的是在一个类中可以有多个同名方法,但这些方法的参数列表必须不同(包括参数个数、类型或顺序)。选项B错误地试图通过仅改变返回类型来重载...

    .net面试题及标准答案

    7. override与overload:override重写基类的虚方法,确保在子类中具有不同的实现;overload是方法多态,允许在同一类中定义多个同名但参数列表不同的方法。 8. 索引器:类似于数组,允许通过索引访问对象的成员,如...

    javase总结

    4. **多态**:掌握抽象类、接口、重写(Override)、重载(Overload)的概念。 5. **构造器**:了解构造函数的作用,掌握构造器的使用和重载。 四、异常处理 1. **异常体系**:学习Java中的异常结构,了解Checked和...

    你必须知道的C#的25个基础概念

    7. override与overload: override用于重写基类的虚方法,保持方法签名不变;overload是方法多态性的一种形式,通过改变方法参数列表实现。 8. 索引器: 索引器允许对象像数组一样通过索引访问,使得类可以像集合...

    java知识要点总结.rar

    3. **Java 重写(Override)与重载(Overload)**:重写是指子类重新定义父类的某个方法,保持相同的方法名、返回类型和参数列表,但可以有不同的实现。重载则是指在同一个类中创建多个同名方法,但通过不同的参数列表...

    Asp.net面试题总结

    5. Override与重载的区别: - 重载(Overload)是通过方法名相同但参数列表不同来实现多态,方法签名必须不同。 - Override(重写)是在子类中重新定义基类的虚方法,以改变其行为,方法签名需完全相同。 6. B/S...

    java面试题总结面试宝典

    Java实现多态的机制主要是通过方法重载(Overload)和方法重写(Override),以及向上转型实现的。abstract类和interface的区别也是面试常问问题,以及内部类与静态内部类的区别和使用。 异常处理是Java编程中不可忽视...

    java封装继承.docx

    + 与方法的访问修饰符无关,与方法返回值无关,与参数名无关 四、继承(Inheritance) * 作用:通过继承可以实现非私有资源共享,代码复用 * 语法规则: + 两个对象之间要符合 is-a 关系(是一个) + 定义继承...

    C# .NET 基本概念.doc

    3. override与overload - override:重写,子类中的方法重写父类中的虚方法,保持方法签名不变,改变其实现。 - overload:重载,同名方法的不同版本,通过不同的参数列表区分。 4. C#中的索引器 - 索引器允许...

    java基础知识及框架平时工作总结

    重载(Overload)和重写(Override)是多态性的体现。重载发生在同一类中,通过不同的参数列表实现相同方法名的不同功能;重写发生在子类中,子类方法与父类方法具有相同的签名,并且改变了原有行为。 关于Java的...

    java子类重写父类的方法.doc

    - 子类错误重写:`public void method(String arg, int index)` —— 错误,这实际上是重载(Overload),而非重写。 ##### 规则三:返回类型必须相同 - **解释**:子类重写父类的方法时,返回类型必须与父类方法...

    asp,net面试题总结

    - 业务逻辑层(BLL):包含业务规则和处理,与DAL交互,处理数据验证和业务逻辑。 - 表现层(Presentation Layer):用户界面,与BLL交互,处理用户输入和显示结果。 三层架构的优点在于职责分明,可维护性强,易于...

Global site tag (gtag.js) - Google Analytics