java重载⽗类⽅法_java重载⽅法、重写⽅法
什么是⽅法
⽅法就是若⼲语句的功能集合,⽅法在c语⾔等语⾔中称为函数
⽅法签名:包含两个⽅⾯,⽅法名和参数列表。
⼀个类中不可以有两个⽅法签名完全⼀样,⽅法名相同⽽参数列表不同是可以的。
1.封装⼀段特定的业务逻辑功能
2.⽅法尽可能独⽴,只⼲⼀件事
3.⽅法可以反复的被调⽤
4.⽅法可以减少代码的重复,有利于代码的维护
注意事项:
1.⽅法定义的前后顺序⽆所谓。
2.⽅法定义必须是挨着的,⽅法不能嵌套。
3.⽅法定义以后,不会⾃⼰执⾏;如果需要执⾏,⼀定要进⾏⽅法的调⽤。
4.返回值类型要相同。
⽅法的重载(Overload)
⽅法名称相同但是参数列表不同(在⼀个⽅法功能类似的时候⽤到)编译器会根据签名,⾃动绑定调⽤不同的⽅法。
与重载相关
1.参数个数不同步
2.参数类型不同
3.参数的多类型顺序不同
与重载⽆关
1.与参数的名称⽆关(两个⽅法名字相同,但是形参名字不同,是错误的写法)
java重写和重载的区别2.与⽅法的返回值类型⽆关(两个⽅法名字,形参名字相同,返回值不同,是错误的写法;因为单独调⽤的时候⽤不到返回值,编译器就区分不开了)。
println就是⼀个例⼦,println可以输出各种类型,就是因为⽤到了重载。
⽅法的重写(Override)
当⽗类的⽅法 满⾜不了⼦类的需求时就⽤到了重写,⼦类通过重写⽗类的⽅法,可以⽤⾃⾝的⾏为替换⽗类的⾏为。⽅法的重写是实现多态的必要条件。
1.重写发⽣在⽗⼦类中。⽅法名称、参数列表都相同,不同的是⽅法体。
2.⽗类的引⽤可以调⽤⼦类重写⽗类的⽅法。
例如:Student s = new Student();
Person p = new Student();//向上造型,⽗类的引⽤指向⼦类的对象。
若被重写的⽅法为sayHi(),则此时s.sayHi( )和p.sayHi( )调⽤的都是Student这个⼦类中重写的sayHi⽅法。
重写的条件:遵循“两同两⼩⼀⼤”原则
两同:⽅法名称相同、⽅法参数列表相同。
两⼩:1.⼦类重写⽅法时的返回值类型⼩于或等于⽗类的⽅法。//当⽗类返回值类型为基本类型或void时⼦类的返回值必须相等,因为返回值的类型需要有继承关系才去考虑⼤⼩这个概念,类型不同肯定不是⽅法重写。引⽤类型时看⼦类返回值类型,是否是⽗类返
回值类型的⼦类。⽗类被认为是“⼤”的。
2.⼦类⽅法声明抛出的异常类应⽐⽗类⽅法声明抛出的异常类更⼩或相等。换句话说,重写⽅法⼀定不能抛出新的检查异常,或
者⽐被重写⽅法声明更加宽泛的检查型异常。
⼀⼤:⼦类的访问权限因改⽐⽗类的访问权限⼤或相等。
重写和重载的区别
1.⽅法的重载和重写都是实现多态的⽅式,区别在于前者实现的是编译时的多态性,⽽后者实现的是运⾏时的多态性。
2.重载发⽣在⼀个类中,同名的⽅法如果有不同的参数列表(参数类型不同、参数个数不同或者⼆者都不同)则视为重载;
重写发⽣在⼦类与⽗类之间,重写要求遵循“两同两⼩⼀⼤原则”,即⼦类被重写⽅法与⽗类被重写⽅法有相同的参数列表,相同的函数名,有兼容的返回类型,⽐⽗类被重写⽅法更好访问,不能⽐⽗类被重写⽅法声明更多的异常(⾥⽒代换原则)。重载对返回类型没有特殊的要求,不能根据返回类型进⾏区分。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论