Java中方法的重写(override)和重载(overload)的使用规则总结:
来源:互联网 发布:师洋的淘宝店号是多少 编辑:程序博客网 时间:2024/06/09 01:58
1、共同点:二者都是Java多态性的具体表现形式。
2、方法的重写(override)
2.1、何为Java方法的重写(override)?
在子类继承父类的过程中,可以根据需要对父类的一些不合时宜的方法(不能满足子类需求)进行重新定义,
这种做法就叫方法重写,也可称为方法覆盖。
2.2、方法重写的规则?
(1)重写方法必须和被重写方法具有相同的方法名、参数列表和返回值类型;
(其中参数列表包括:形参数目、类型、顺序)
(2)重写方法不能使用比重写方法更为严格的访问权限;
(3)重写方法不允许声明抛出比被重写方法范围更大的异常类型。
具体举例:
public class Person { String name; int age; public String get Info () { return "name:"+ name +"\tage:"+ age; }} public class Student extend Person{ String school; public String getInfo(){ return "name:"+ name +"\tage:"+ age+"\tschool:"+school; }}public class Test{ public static void main (String[] args){ Person p = new Person(); p.name = "Jim"; p.age = "20"; System.out.println(p.getInfo()); Student s = new Student(); s.name = "Tom"; s.age = "21"; s.school = "哈佛"; System.out.println(s.getInfo()); }}程序运行输出结果为:
name:Jim age:20
name:Tom age:21 school:哈佛
3、方法的重载(overload)
3.1何为方法的重载(overload)?
在一个类中存在多个同名的方法的情况,通常这些方法所提供的功能相近但是稍有不同。
3.2方法重载的规则?
(1)必须具有相同的方法名;
(2)必须具有不同的参数列表;
(3)而返回值类型可以不同、方法的修饰符可以不同、可以抛出不同异常。
具体举例:
public class Test{ public void t1(int i){ System.out.println("方法t1的参数1:"+i); } public void t1(double j){ System.out.println("方法t1的参数2:"+j); } public static void main(String[] args){ Test t = new Test(); t.t1(3); t.t1(3.14); byte b = 12; t.m1(b); }}程序运行输出结果为:
方法t1的参数1:3
方法t1的参数2:3.14
方法t1的参数1:12
注:方法调用时出现实参和形参的类型不严格一致,但是只要通过自动类型转换后能够匹配的仍然可以调用。
在遇到多重匹配的情况,编译器是以最低的类型转换开销为准来进行方法调用的。
(最低开销可以理解为:不同类型数值之间的转换时所需要的存储空间和处理器运算时间上的消耗)。
阅读全文
1 0
- Java中方法的重写(override)和重载(overload)的使用规则总结:
- Java中重载(overload)和重写(override)的区别
- Java中重载(overload)和重写(override)的区别
- Java中重载(Overload)和重写(Override)的区别
- java中 方法重写和方法重载的区别(override和overload的区别)
- 函数重载(overload)和函数重写(override)的基本规则
- java方法的重载(Overload)与重写(Override)
- 方法的重载(Overload)和重写(Override)
- Java的重载(Overload)与重写(Override)
- Java的重载(Overload)与重写(Override)
- 重载(Overload)和重写(Override)的区别
- c#的重写(override)和重载(overload)
- override重写和overload重载的区别
- 重写Overload和重载Override的区别?
- Java重载(overload)和重写(override)的区别
- java基础-------重载(Overload)和重写的区别(Override)
- java中方法重写(Override)与方法重载(Overload)的区别
- C#中隐藏(new)和方法重写(override)和重载(overload)的区别
- 主流浏览器密码获取-WebBrowserPassView二次开发
- Android中使用Spinner来实现图标文字并存的二级联动
- android Edittext 设置行间距
- Ubuntu操作系统下Pixhawk原生固件PX4的编译方法
- Hdu2162 Add ‘em
- Java中方法的重写(override)和重载(overload)的使用规则总结:
- 两数组的交 II
- 基于Python库surprise的电影推荐系统
- HTML5 eclipse中写java,html,css,javascript代码提示
- 哈夫曼编码,应用模板特化递归+bind函数绑定
- c++ primer
- Linux_正则表达式
- Linux tar 命令 压缩、解压
- [DuiLib教程2]DuiLib第一个测试Demo的注释