哦! 对不起失言了,回到刚才的方法重写和方法重载! 今天在复习方法的改写和方法的重载,我觉得自己还不太清楚。 找了一下资料,大概明白了。 让我在这里和大家分享。
首先,方法重写和方法重载基于Java的面向对象继承和多态特性。 关于面向对象的继承和多态性的特性,这里不多说。 继承是在父类的基础上创建另一个子类。 这样,子类就具有父类的非专用特性,子类可以扩展自己的特性,从而导致方法重写和方法重载
一、方法改写(Override ) )
Java中如何定义重写? Java程序类的继承特性可以生成子类,子类继承父类时,它具有非专用于父类的属性(方法和变量),在向子类添加自己的属性(方法和变量)的同时,还可以生成父类的这被称为重写,也称为重写和复盖。 方法重写是指子类的方法和父类继承的方法具有完全相同的方法名称、返回类型、方法参数数量和参数类型,称为方法重写。
查看代码:
//这是父类的定义
公共类人员{
公共语音eat
system.out.println((===这是父类Person的eat方法=======() ) ) );
}
}
//这是子类的定义
publicclassstudentextendsperson {
@Override
公共语音eat
system.out.println('==这是子类Student的eat方法===' );
}
//main方法测试
publicstaticvoidmain (字符串[ ] args ) {
Student student=new Student (;
student.eat (; //输出:===这是子类Student的eat方法===
}
}
如果重写父类中的方法,则在实例化子类时将调用子类中的方法,从而重写父类中的方法。 如果需要在子类中调用父类的方法,请在子类的方法中使用super关键字以super .父类中方法名称(参数列表)的形式调用父类的方法。
规则改写:
重写方法时,要实现方法的重写,必须遵循以下规则:
)一)子类方法的参数列表必须与父类重写方法的参数列表相同(参数数量和参数类型)。 否则,只能实现方法的重载。
)二)子类方法的返回类型必须与父类重写方法的返回类型相同。 否则,只能实现方法重载。
(三) Java规定,子类方法的访问权限不得小于父类重写方法的访问权限,且不得小于父类的访问权限。
(四)在重写过程中,如果父类中的重写方法抛出异常,子类中的方法也会抛出异常。 但是,抛出的异常也有一定的约束---子类不能抛出比父类更多的异常,只能抛出比父类小的异常,或者不抛出异常。 例如,如果父方法抛出Exception,则子类将只抛出IOException、抛出小于Exception的异常或不抛出异常。
二、方法重载(Overload ) ) ) ) )。
如何在Java中定义重载:在Java中,通过在类中写多个方法,通过方法名称相同、方法参数列表不同(参数数量和参数类型不同)来再现方法重载方法重载是指一个类中有一组方法,这些方法具有相同的方法名称,但参数列表不同。 此类方法的当前是方法重载。 请注意,结构方法也可以重载。
查看代码:
//这是父类的定义
公共类人员{
/*
*受保护的void eat () throws Exception{
* }
*/
公共人员() }
System.out.println;
}
公共个人(字符串名称) {
System.out.println (这是具有参数的构造方法参数name=' name );
}
void打印() }
system.out.println('===无参print方法====' );
}
语音打印(字符串)。
system.out.println('===有参数的print方法====' );
}
voidprint(stringstr,int a ) {
system.out.println('===2具有两个参数的print方法====' );
}
}
当对象调用这些方法时,JavaVM会基于不同的参数列表执行不同的方法主体。 这是多态性的一种。
重载规则:
在进行方法重载时,必须遵守以下规则:
(一)复用方法重载时,必须用方法中不同的参数列表实现方法重载。 例如,方法的参数数量不同,或者方法的参数类型不同。
(二)访问权限、返回类型、抛出异常无法实现重载
(三)方法的异常类型和抛出的异常数量不影响方法的重载。 也就是说,在重载方法中允许抛出不同的异常
(四)如果方法的参数列表不同,则返回类型可以不同
(五)可以有不同的访问修饰符
三.改写和重载的区别
不同点
重载
重写(间谍写入) ) )。
英语
装载订单
复盖
定义
方法名称相同,参数类型或数量不同
方法名称、参数类型和返回类型都相同
没有对权限的要求
被改写的方法不能有更严格的权限
范围
在一个班发生
在继承类中发生
注:构造方法是不可继承的,无法重写。 在子类中,只能从super关键字调用父类的构造方法,但也可以重载。
主要说明方法重写和方法重载的区别,教Java初学者学习!