Java overload和override的区别分析

收购各种树木6

收购各种树木6

2016-02-19 11:36

今天图老师小编给大家介绍下Java overload和override的区别分析,平时喜欢Java overload和override的区别分析的朋友赶紧收藏起来吧!记得点赞哦~
方法的重写(Overriding)和重载(Overloading)是Java多态性的不同表现。重写(Overriding)是父类与子类之间多态性的一种表现,而重载(Overloading)是一个类中多态性的一种表现。
如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。
如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型或有不同的参数次序,则称为方法的重载(Overloading)。不能通过访问权限、返回类型、抛出的异常进行重载.

1.方法重载(overload)
概念:简单的说:方法重载就是类的同一种功能的多种实现方式,到底采用哪种方式,取决于调用者给出的参数。 
注意事项:
(1)方法名相同
(2)方法的参数类型、个数、顺序不至少有一项不同
(3)方法返回类型可以不同
(4)方法的修饰符可以不同
如果只是返回类型不一样,不能够构成重载
如果只是控制访问修饰符号不一样,也是不能构成重载的
Overloaded的方法是可以改变返回值的类型。
2.方法覆盖(override)
概念:简单的说:方法覆盖就是子类有一个方法,和父类的某个方法的名称、返回类型、参数一样,那么我们就说子类的这个方法覆盖了父类的那个方法。
注意事项:方法覆盖有很多条件,总的讲有两点一定要注意:
(1)子类的方法的返回类型,参数,方法名称,要和父类方法的返回类型,参数,方法名称完全一样,否则编译出错。
(2) 子类方法不能缩小父类方法的访问权限(反过来是可以的)
例:
Overrride实例
代码如下:

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);
}
}
展开更多 50%)
分享

猜你喜欢

Java overload和override的区别分析

编程语言 网络编程
Java overload和override的区别分析

java_String和StringBuffer区别分析

编程语言 网络编程
java_String和StringBuffer区别分析

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

java中instanceof和getClass()的区别分析

编程语言 网络编程
java中instanceof和getClass()的区别分析

java中Hashtable和HashMap的区别分析

编程语言 网络编程
java中Hashtable和HashMap的区别分析

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

java中的值传递和引用传递的区别分析

编程语言 网络编程
java中的值传递和引用传递的区别分析

JavaScript和Java的区别

Web开发
JavaScript和Java的区别

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

菜鸟购买电脑必读 小心这些误区

菜鸟购买电脑必读 小心这些误区

eclipse报错 eclipse启动报错解决方法

eclipse报错 eclipse启动报错解决方法
下拉加载更多内容 ↓