Java中重载和重写区别
2014-03-11 22:36
274 查看
一、重载
(1)方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。
重载Overloading是一个类中多态性的一种表现。
(2)方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。
(3)重载的时候,方法名要一样,但是参数类型或者个数不一样(必须要有一个不一样),返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。
例子:
类:
package com.tuyao.overwritedemo;
public class Superdemo
{
public float name()
{
System.out.println("父类");
return 10;
}
}
类:
package com.tuyao.overwritedemo;
public class Overwritedemo extends Superdemo
{
public void name(int a )
{
System.out.println("学生");
}
public int name(int b,int c )
{
System.out.println("教师");
return 1;
}
public static void main(String args[])
{
Overwritedemo ov=new Overwritedemo();
ov.name(1,1);
ov.name(1);
}
}
输出:
教师
学生
明显第一个调用的方法和第二个调用的方法不一样
二、重写
(1)方法重写又叫方法覆盖,是父类与子类之间的多态性,重写就是对父类函数进行重写定义
(2)子类要求与父类有相同的名称,参数
(3)子类的访问权限不能少于父类
说明:子类要求比父类的修饰符范围要大或者相等才行,当然父类不能用private(体现了多态性)
(
例子:
类:
package com.tuyao.overwritedemo;
public class Superdemo
{
public void name()
{
System.out.println("人类");
}
}
类:
package com.tuyao.overwritedemo;
public class Overwritedemo extends Superdemo
{
public void name( )
{
System.out.println("学生");// 重写部分
}
public static void main(String args[])
{
Overwritedemo ov=new Overwritedemo();
ov.name();
}
}
输出:学生
说明调用的是子类的name()方法
(1)方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。
重载Overloading是一个类中多态性的一种表现。
(2)方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。
(3)重载的时候,方法名要一样,但是参数类型或者个数不一样(必须要有一个不一样),返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。
例子:
类:
package com.tuyao.overwritedemo;
public class Superdemo
{
public float name()
{
System.out.println("父类");
return 10;
}
}
类:
package com.tuyao.overwritedemo;
public class Overwritedemo extends Superdemo
{
public void name(int a )
{
System.out.println("学生");
}
public int name(int b,int c )
{
System.out.println("教师");
return 1;
}
public static void main(String args[])
{
Overwritedemo ov=new Overwritedemo();
ov.name(1,1);
ov.name(1);
}
}
输出:
教师
学生
明显第一个调用的方法和第二个调用的方法不一样
二、重写
(1)方法重写又叫方法覆盖,是父类与子类之间的多态性,重写就是对父类函数进行重写定义
(2)子类要求与父类有相同的名称,参数
(3)子类的访问权限不能少于父类
说明:子类要求比父类的修饰符范围要大或者相等才行,当然父类不能用private(体现了多态性)
(
例子:
类:
package com.tuyao.overwritedemo;
public class Superdemo
{
public void name()
{
System.out.println("人类");
}
}
类:
package com.tuyao.overwritedemo;
public class Overwritedemo extends Superdemo
{
public void name( )
{
System.out.println("学生");// 重写部分
}
public static void main(String args[])
{
Overwritedemo ov=new Overwritedemo();
ov.name();
}
}
输出:学生
说明调用的是子类的name()方法
相关文章推荐
- java_重写与重载的区别
- java中重载与重写的区别
- Java基础——overload(重载)与overwrite(重写)的区别
- java中重载与重写的区别
- Java重写重载的区别
- java中方法的重载与重写的区别
- Java - 重载 与 重写 的区别
- Java 重写和重载区别——面向对象的多态性分析
- Java的重载和重写的区别
- Java重载、重写及重构的区别
- java中的重写(覆盖)及和重载区别
- JAVA重载和重写的区别
- Java中方法重载overload和重写override的区别
- java中重载与重写的区别
- [Java]重载,重写以及继承,多态的区别
- Java中重载与重写的区别
- 简单的java实验,涉及到 类继承以及接口问题,方法体的重写(区别于重载)
- 第017课:Java - OOP - 重载与重写的区别
- java中重载和重写的区别是什么?
- java中重载与重写的区别