① java方法重载和方法重写的例子
下面将分别讲解重载与重写:
1、重载overloading
1) 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载是一个类中多态性的一种表现。
2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型给它们的不同参数个数和参数类型给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。
3) 重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。
示例代码:
public class Dog {
Dog()
{
this.bark();
}
void bark()//bark()方法是重载方法
{
System.out.println("no barking!");
this.bark("female", 3.4);
}
void bark(String m,double l)//注意:重载的方法的返回值都是一样的,
{
System.out.println("a barking dog!");
this.bark(5, "China");
}
void bark(int a,String n)//不能以返回值区分重载方法,而只能以“参数类型”和“类名”来区分
{
System.out.println("a howling dog");
}
public static void main(String[] args)
{
Dog dog = new Dog();
//dog.bark();
//dog.bark("male", "yellow");
//dog.bark(5, "China");
}
}
2、重写overriding
1) 父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。
2) 若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类。
3) 子类函数的访问修饰权限不能少于父类的;
示例代码:
public class Base
{
void test(int i)
{
System.out.print(i);
}
void test(byte b)
{
System.out.print(b);
}
}
public class TestOverriding extends Base
{
void test(int i)
{
i++;
System.out.println(i);
}
public static void main(String[]agrs)
{
Base b=new TestOverriding();
b.test(0)
b.test((byte)0)
}
}
这时的输出结果是1 0,这是运行时动态绑定的结果。
② JAVA方法的重写与隐藏
public class Animal {
int height;
Animal(){
System.out.println("animal construct");
}
void breathe(){
System.out.println("animal breathe");
}
}
public class Fish extends Animal{
int height;
Fish(){
System.out.println("fish construct");
}
void breathe(){
super.height=40;
super.breathe();
System.out.println("fish bubble");
}
}
上面的例子中fish是animal的子类,fish继承了父类animal中的成员变量和函数,就是说fish这个类什么都不写,实例化后也可以调用fish.breath()。但是animal中的breath在子类fish中被重写,所以子类当中原本的父类方法就被隐藏了。你在main函数里调用的话就是被重写的函数。但是你可以通过super.breath()的形式调用父类原本定义的函数。数据成员height也是一样。
③ Java编程中 重写和重载 分别是什么详细告诉我好吗
自己看书,没必要在这发帖子啊。别人还不是发书给你看
④ java 重载和重写的区别
1.定义区别:
①重载是指不同的函数使用相同的函数名,但是函数的参数个数或类型不同。调用的时候根据函数的参数来区别不同的函数。
②覆盖(也叫重写)是指在派生类中重新对基类中的虚函数(注意是虚函数)重新实现。即函数名和参数都一样,只是函数的实现体不一样。
2.类的关系区别
覆盖是子类和父类之间的关系,是垂直关系;重载是同一个类中方法之间的关系,是水平关系。
3.产生方法区别
覆盖只能由一个方法或只能由一对方法产生关系;重载是多个方法之间的关系。

4.参数列表要求区别
覆盖要求参数列表相同;重载要求参数列表不同。
5.调用方法区别
覆盖关系中,调用方法体是根据对象的类型来决定;而重载关系是根据调用时的实参表与形参表来选择方法体的。
(4)函数重写java扩展阅读
方法的重写:
1、在子类中可以根据需要对从基类中继承来的方法进行重写。
2、重写的方法和被重写的方法必须具有相同方法名称、参数列表和返回类型。(注:返回值可以为父类中返回值的子类型.参数若为子类,则不是重写是重载)
3、重写方法不能使用比被重写的方法更严格的访问权限。
4. 重写方法不能声明抛出比被重写方法范围更大的异常类型。
总结:重写是子类对所继承父类相同方法的一种更改,这个更改需要遵循格式按照父类的格式,访问权限,抛出异常等等,都在父类方法控制范围内,内部具体实现可以实现不同的效果。
⑤ 在Java中,方法重写和方法重载有什么区别
方法重载:就是在同一个类中,方法的名字相同,但参数个数、参数的类型或返回值类型不同!
方法重写:它是指子类和父类的关系,子类重写了父类的方法,但方法名、参数类型、参数个数必须相同!
是不是很容易理解啊!
⑥ java重写已定义好的类中的方法
java中重写已定义好的类中的方法,只需要定义一个类继承该类,然后在子类中写出一个与该方法的返回值、名字、参数列表全部一致,但是函数内容不同即可完成重写操作。在java中有重载和覆盖(即重写)两个概念,重载是在同一个类中,方法名相同,参数列表或者参数个数与参数顺序不一致即可重载;而覆盖是在子父类中,子类的方法与父类的方法完全一致,但是方法内容不同叫做覆盖也叫重写。
⑦ 在JAVA中为什么有些函数重写后会自动执行,比如compareTo
因为在调用某些方法时, 会用到父类里的compareTo, 你重写了它, 所以执行到调用时. 会调用你所重写的方法.
//简单的栗子:A类是一个父类
classA{
voidsomething(){
System.out.println("A里的something方法");
}
voiddoSth(){
something();
}
//B类继承于A,并重写了A类的方法
classBextendsA{
@Override
voidsomething(){
System.out.println("B里的somthing方法");
}
}
Bb=newB();
b.doSth();//方法调用时会执行你重写的那个方法
//输出:
//B里的somthing方法
//或者如此:这样内部匿名类重写方法,也可以;
Aa=newA(){
@Override
voidsomething(){
System.out.println("重写的somthing方法");
}
};
a.doSth();
//输出:
//重写的somthing方法
⑧ java语言中的重写、重载、继承
重写重载发生在函数上,继承发生在类上!
重写在继承的基础之上;
重载与重写都是函数的特性,
重载只看参数列表,重写要看函数所有:(权限,返回值类型,函数名必须一样,参数类型与个数必须一样);
我给你通俗点打比方,可能不是很恰当,只希望明白就好!
//先说重载!
class小明
{
/*小明会射击至于哪种类型的武器代表参数*/
//方法1
void射击(int弓)
{
}
//方法2
void射击(String枪)
{
}
//方法3
void射击(String枪,int弓)
{
}
/*方法名都一样,只是参数列表不一样*/
}
/*----------------------说说继承!-----------------------------------*/
class小明爹
{
//方法1
void射击(int弓)
{
}
}
class小明extends小明爹
{
//这里什么都没定义!
//什么都没有的情况下,小明就有他爹的射击这个方法了!
}
/*--------------------------重写-----------------------------*/
class小明爹
{
//方法1
void射击(int弓)
{
蛙泳式;
}
}
class小明extends小明爹
{
//小明觉得他爹的射击姿势很不给力,他决定覆盖他爹的方法,也称为重写!
void射击(int弓)
{
狗刨式;
}
}
//如果实例化小明以后,调用这个射击的动作就是小明自己的了,明白吗?
//当然其实也能调用他爹的,这个需要他爹内部对外提供一个方法即可!
//默认实例化完以后,在调用射击这个方法,就是小明的狗刨式了!
比喻不是很恰当,只希望你能明白!和你一样,我也是初学者!基础部分很关键!
⑨ Java中重写的方法参数可以重新指定
我想你还没有分清Java中重载与重写的区别:x0dx0a首先我们来讲讲:重载(Overloading)x0dx0ax0dx0a (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。x0dx0ax0dx0a重载Overloading是一个类中多态性的一种表现。x0dx0ax0dx0a(2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。x0dx0ax0dx0a调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。x0dx0ax0dx0a(3) 重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。x0dx0ax0dx0a然后我们再来谈谈 重写(Overriding)x0dx0ax0dx0a (1) 父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。x0dx0ax0dx0a但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。x0dx0ax0dx0a方法重写又称方法覆盖。x0dx0ax0dx0a(2)若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。x0dx0ax0dx0a如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类。x0dx0ax0dx0a(3)子类函数的访问修饰权限不能少于父类的。x0dx0ax0dx0a所以Java中重写的方法参数是不能重新指定的,那样就是变成重载了。
⑩ java中方法重载和重写的区别和定义
重载:一个类中有一个方法A,你又在这个类中创建了一个方法B,方法B的名字和A一样,返回值类型也一样,但是参数的类型或个数不同,此时B重载了A。
例如:
public class TestClass{
public int test(int i){return 1;}
public int test(float f){return 1;}
}
重写:一个类M继承另一个类N,N中有一个方法A,这时你在M写了一个方法B,方法B的名字、返回值以及参数都和A一样,此时B重写了A。
例如:
public class TestClass1{
public int test(int i){return 1;}
}
public class TestClass2 extends TestClass1{
public int test(int i){return 2;}
}