源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Java overload和override的区别分析

  • 时间:2022-02-26 01:16 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Java overload和override的区别分析
方法的重写(Overriding)和重载(Overloading)是Java多态性的不同表现。重写(Overriding)是父类与子类之间多态性的一种表现,而重载(Overloading)是一个类中多态性的一种表现。 如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。 如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型或有不同的参数次序,则称为方法的重载(Overloading)。不能通过访问权限、返回类型、抛出的异常进行重载. [b]1.方法重载(overload)[/b] 概念:简单的说:方法重载就是类的同一种功能的多种实现方式,到底采用哪种方式,取决于调用者给出的参数。  注意事项: (1)方法名相同 (2)方法的参数类型、个数、顺序不至少有一项不同 (3)方法返回类型可以不同 (4)方法的修饰符可以不同 如果只是返回类型不一样,不能够构成重载 如果只是控制访问修饰符号不一样,也是不能构成重载的 Overloaded的方法是可以改变返回值的类型。 [b]2.方法覆盖(override)[/b] 概念:简单的说:方法覆盖就是子类有一个方法,和父类的某个方法的名称、返回类型、参数一样,那么我们就说子类的这个方法覆盖了父类的那个方法。 注意事项:方法覆盖有很多条件,总的讲有两点一定要注意: (1)子类的方法的返回类型,参数,方法名称,要和父类方法的返回类型,参数,方法名称完全一样,否则编译出错。 (2) 子类方法不能缩小父类方法的访问权限(反过来是可以的) 例: [b]Overrride实例[/b]
[u]复制代码[/u] 代码如下:
class A{ public int getVal(){ return(5); } } class B extends A{ public int getVal(){ return(10); } } public class override { public static void main(String[] args) { B b = new B(); A a= (A)b;//把 b 强 制转换成A的类型 int x=a.getVal(); System.out.println(x); } } Overload实例 package com.guonan; //Demostrate method voerloading. class OverloadDemo { void test(){ System.out.println("NO parameters"); } void test(int a){ System.out.println("a:"+a); }//end of Overload test for one integer parameter. void test(int a, int b){ System.out.println("a and b:"+a+" "+b); } double test(double a){ System.out.println("double a:"+a); return a*a; } } class Overload{ public static void main(String[] args) { OverloadDemo ob = new OverloadDemo(); double result; ob.test(); ob.test(10); ob.test(10, 20); result = ob.test(123.25); System.out.println("Result of ob.test(123.25):"+result); } }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部