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

Overload & Override

 
阅读更多

Overload:

  1. 参数类型、个数、顺序至少有一个不相同。
  2. 不能重载只有返回值不同的方法名。
  3. 存在于父类和子类、同类中(重载的多个方法可以在一个类中,也可以在具有继承关系的一系列类中)。

Override:

  1. 方法名、参数、返回值相同。
  2. 子类方法不能缩小父类方法的访问权限。
  3. 子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。
  4. 存在于父类和子类之间。
  5. 方法被定义为final不能被重写。

class ParentClass {
	public void sayHello(){
		System.out.println("I'm parent");
	}
}

class ChildClass extends ParentClass {
	public void sayHello(){
		System.out.println("I'm child");
	}
}

/**
 * 编译器根据参数不同在编译时即可根据参数确定使用那个方法。运行时类型可能是原引用类型的子类型。
 * 但是,编译器重载时根据参数的编译时类型来决定参数类型,不去研究参数运行时类型。
 * @author Administrator
 *
 */
public class Test {
	public void testOverLoad(ParentClass cls) {
		// overload的特性 - 编译的时候决定调用的method
		System.out.println("It's ParentClass");
		// override的特性 - 运行时根据实例的真正类型决定调用方法
		cls.sayHello();
	}

	public void testOverLoad(ChildClass cls) {
		System.out.println("It's ChildClass");
		cls.sayHello();
	}

	public static void main(String[] args) {
		Test test = new Test();
		ParentClass parentCls = new ParentClass();
		ParentClass childCls = new ChildClass();

		test.testOverLoad(parentCls);
		test.testOverLoad(childCls);
	}
}
/*
It's ParentClass
I'm parent
It's ParentClass
I'm child
*/

 

分享到:
评论

相关推荐

    Delphi面向对象:overload与override[文].pdf

    Delphi面向对象编程之overload与override Delphi面向对象编程中,overload和override是两个非常重要的概念,它们都是面向对象编程的基础概念。本文将详细介绍overload和override的概念、应用场景及实现方法。 一、...

    overload and override.txt的区别

    ### Overload 和 Override 的区别 在面向对象编程中,`overload`(重载)与`override`(重写或覆盖)是两个重要的概念。它们虽然只有一字之差,但在实际应用中却有着本质的区别。 #### Overload(重载) 重载指的...

    overload and override

    ### Overload和Override详解 #### 一、概念概述 在面向对象编程中,尤其是在Java语言中,`Overload`(重载)和`Override`(重写)是两个非常重要的概念,它们帮助开发者更好地组织代码并提高代码的复用性和灵活性...

    Java overload和override的区别分析

    public class Override { public static void main(String[] args) { B b = new B(); A a = (A) b; // 类型转换 int x = a.getVal(); System.out.println(x); // 输出10 } } ``` 总结来说,**重载**关注的...

    Override-Overload

    ### Override与Overload的区别 在面向对象编程中,方法重写(Override)和方法重载(Overload)是两个非常重要的概念。它们虽然都涉及到方法名称的重复使用,但是其本质含义、作用以及应用场景有着明显的区别。 ##...

    Java程序员面试宝典2011最新出炉

    9. **重载与覆盖(Overload & Override)** - 重载(Overload)是指同一类中方法名相同但参数列表不同的方法,返回类型不影响重载。 - 覆盖(Override)是指子类重新定义父类的虚方法,要求方法名、参数列表和返回类型...

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

    Overload(重载):在C++程序中,可以将语义、功能相似的几个函数用同一个名字表示,但参数或返回值不同(包括类型、顺序不同),即函数重载。(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;...

    PHP中overload与override的区别

    总的来说,`override` 用于子类改变父类的特定行为,而 `overload` 则是通过不同的参数列表在同一个类中创建多个同名方法。两者都是提高代码灵活性和可扩展性的手段,但它们作用的范围和方式不同。理解并正确使用这...

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

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

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

    在C++编程语言中,Overload(重载)、Override(覆盖)和Hide(隐藏)是三个重要的概念,它们涉及到函数的多态性、继承和作用域。这些特性使得C++能够实现灵活的代码复用和面向对象的设计。 **1. Overload(重载)*...

    Override,Overload,Overwrite的区别---马克-to-win Java视频

    Override Overload Overwrite 马克-to-win Java视频

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

    根据提供的文件信息,我们可以深入探讨Java中的两个核心概念:重写(Override)与重载(Overload)。这两个概念在面向对象编程中非常重要,尤其是在Java这样的语言中。 ### Java中的重写(Override) #### 什么是重写? ...

    重写(override)和重载(overload)的区别

    在C#编程语言中,重写(Override)和重载(Overload)是两种非常重要的概念,它们分别涉及对象多态性和方法的可选性。理解这两者的区别对于编写高效且易于维护的代码至关重要。 首先,让我们深入了解一下重写(Override)...

    Java面试题-基础+集合原理.pdf

    本资源主要涵盖Java面试题的基础知识和集合原理,涵盖Object-Oriented Programming(OOP)相关知识点,包括多态(Polymorphism)、方法Overload和Override、等于运算符(==)和equals()方法的使用、final、finally...

    override和重载 希望对大家有帮助

    在编程语言中,`override` 和 `重载(Overload)` 是两个非常重要的概念,它们分别涉及面向对象的多态性和方法的灵活性。这两个概念在Java、C#等面向对象的语言中尤为常见,但理解它们的含义和用法对于任何程序员来说...

    override和重载的区别

    在编程语言中,"override" 和 "重载"(overload)是两个常见的概念,它们都与函数或方法的行为有关,但具体含义和使用场景不同。理解这两个概念对于编写多态性和灵活性的代码至关重要。 首先,我们来谈谈“重载”...

    java 经 典 面 试 题

    本文辑集了 Java 面试题的相关知识点,涵盖了 Java 基础知识、面向对象编程、事件委托机制、垃圾回收机制、序列化、多重嵌套循环、排序算法、Overload 和 Override、Final 类、继承、内部类、集合框架等多方面的内容...

Global site tag (gtag.js) - Google Analytics