Java基础教程27-方法重写
来源:互联网 发布:知乎live 编辑:程序博客网 时间:2024/06/06 10:11
看到标题,是否想起前面有一篇文章叫方法重载。什么是方法重写呢?在Java编程语言中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。
方法的重写有几个特点:
1)发生在子类,有子类就有继承
2)父类方法的参数列表必须完全与被子类重写的方法的参数列表相同
3)父类的返回类型必须与被子类重写的方法返回类型相同
4)Java中规定,被子类重写的方法不能拥有比父类方法更加严格的访问权限
我们来写一个例子,介绍方法的重写。
新建一个父类,Student.java
package lesson01;public class Student {int getAge(){return 0;}}写一个子类,CollegeStudent.java 继承Student类
package lesson01;public class CollegeStudent extends Student {int getAge(){return 10;}}我们的测试类MyClass.java 这样写。
package lesson01;public class MyClass {public static void main(String[] args) {Student st = new CollegeStudent();System.out.println(st.getAge());}}运行下,发现可以打印出结果是10,而不是打印0.也就是子类实例对象调用了自己的方法,虽然这个方法返回值,方法名称,参数都和父类方法相同,但是里面的返回值不相同,这就是方法的重写。
说到方法重写,不得不提文章开头的方法重载,他们的根本区别就是:方法重写是在子类和父类之间,而方法重载是在同一个类里面。方法重写,子类和父类方法必须保持,返回类型,方法名称,参数个数和参数类型完全保持一致。而方法重载,只有方法名称相同,其他都可以不相同。
还记得前面final文章中的一点:final方法不能被子类的方法覆盖
我们来用例子说明这个结论。
父类方法我们用final修饰,代码如下:
package lesson01;public class Student {final int getAge(){return 0;}}子类方法里如下,getAge()报错
package lesson01;public class CollegeStudent extends Student {int getAge(){return 10;}}
方法的重写就介绍到这里,希望你对方法的重写和重载和final关键字有一个基本的了解。
阅读全文
0 0
- Java基础教程27-方法重写
- java基础教程--方法
- JAVA-方法的重写
- java重写eval方法
- JAVA重写equals方法
- Java重写方法
- [Java] Overrid 方法重写
- JAVA重写equals方法
- Java方法重写问题
- java 重写equals方法
- java方法重写
- Java重写round()方法
- java 方法的重写
- Java方法的重写
- java中的方法重写
- Java的方法重写
- Java重写父方法
- Java 重写tostring方法
- 【Netty基础】Netty的“零拷贝”
- ROS节点
- 应用Token的流程和作用
- 哲理问题
- 单词反转(举一反三)
- Java基础教程27-方法重写
- 快速迭代的需要
- C++中的max_element()与min_element()
- 使用流式文件读取或写入图片(jpg,png等)或视频(mp4)或音频(mp3)文件
- 类图
- yum常用操作
- 给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。 【腾讯】
- zoj 1019
- XML简介