这篇文章主要介绍“java重写与重载的区别”,在日常操作中,相信很多人在java重写与重载的区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java重写与重载的区别”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。
特点:
方法名相同,==参数列表不同==(参数个数,参数类型,参数顺序)
返回值类型可以相同可以不同
可以抛出不同的异常
应用:
多用于构造方法的重载
class OverloadTest{
//重载时参数顺序不同也可以,但前提时参数类型不同
public static void method(String s,int a){
System.out.println("方法1");
}
public static void method(int a,String s){
System.out.println("方法2");
}
//构造方法的重载应用较多
OverloadTest(int v,String s){
System.out.println("构造方法1");
}
OverloadTest(String s,int v){
System.out.println("构造方法2");
}
}
当子类继承父类后,如果想要修改,可以用方法的重写
特点:
方法名,参数列表相同
返回值类型相同
访问限定符不可以比父类的被重写方法的更严格,即子类的重写方法被访问的范围与父类相同或者更广,不可以更窄
不可以抛出新的受查异常或更广泛的受查异常,可以抛出非受查异常
不可以重写被final修饰的方法
不可以重写被static修饰的方法
应用:
子类需要修改继承自父类的方法时应用
class OverrideTest{
public void method(){
System.out.println("父类的方法");
}
}
class Son extends OverrideTest{
@Override//子类重写父类方法时可以加上这个注解,自动帮你校验重写格式是否正确
public void method(){
System.out.println("子类重写的方法");
}
public static void methodB(){
System.out.println("子类的方法");
}
}
public class OverrideOrOverloadDemo {
public static void main(String[] args) {
new OverrideTest().method();
new Son().method();
OverrideTest ot = new Son();
// ot.methodB();//以引用为准,引用为OverrideTest,该类中的没有方法methodB(),因此会报编译错误
ot.method();//当子类重写了父类的方法时,调用子类的重写的方法
}
}
运行结果:
到此,关于“java重写与重载的区别”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。