实例方法
一个与父类中的实例方法有相同标签(名字,参数个数和类型)和返回类型的子类实例方法会重写父类中的方法.
子类重写的方法具有修改对象的行为的能力,他也可以返回被重写方法返回类型的子类型.这叫做协变返回类型(covariant return type).
在重写某个方法时,你可能想用@Override注解来告诉编译器你打算重写父类中的某个方法.这时候,如果编译器不能在父类中找到这样的方法,将会产生一个错误.
类方法
如果子类中定义了一个类方法与父类中的某个类方法具有相同的标签,那么子类中的方法隐藏(hides)了父类中的方法.
重写和隐藏的区别有重要的意义.调用重写的方法是子类中的版本,调用隐藏的方法的版本依赖于你是用子类还是用父类来调用的.让我们看一个例子:
public class Animal {
public static void testClassMethod() {
System.out.println("The class method in Animal.");
}
public void testInstanceMethod() {
System.out.println("The instance method in Animal.");
}
}
public class Cat extends Animal {
public static void testClassMethod() {
System.out.println("The class method in Cat.");
}
public void testInstanceMethod() {
System.out.println("The instance method in Cat.");
}
public static void main(String[] args) {
Cat myCat = new Cat();
Animal myAnimal = myCat;
Animal.testClassMethod();
myAnimal.testInstanceMethod();
}
}
输出:
The class method in Animal.
The instance method in Cat.
修饰符
访问修饰符的权限只能比在父类中更大或者一样.例如,父类中有个protected实例方法,在子类中修饰符可以是public或protected,但不能是private.
小结
下面的表格总结了当你定义一个与父类中的方法居于相同的标签时会发生什么.
|
父类中的实例方法 |
父类中的静态方法 |
子类中的实例方法 |
重写 |
编译时错误 |
子类中的静态方法 |
编译时错误 |
隐藏 |
分享到:
相关推荐
03_JavaSE面试题:类初始化和实例初始化等
04_JavaSE面试题:方法的参数传递机制
01_JavaSE面试题:自增变量
JavaSE+JavaEE企业级开发 全程笔记免费下载,内容详尽,doc文档,共173页,六号字体,双栏排版。 *、Java 基础, *、web, *、数据库(Mysql Oracle jdbc Hibernate hql/sql), *、JSP, *、Ajax *、Struts, *、...
数据库课程设计1、JavaSE:Java入门.pdf1、JavaSE:Java入门.pdf1、JavaSE:Java入门.pdf1、JavaSE:Java入门.pdf1、JavaSE:Java入门.pdf1、JavaSE:Java入门.pdf1、JavaSE:Java入门.pdf1、JavaSE:Java入门.pdf1...
05_JavaSE面试题:递归与迭代
02_JavaSE面试题:单例设计模式
06_JavaSE面试题:成员变量与局部变量
李兴华 javaSE 视频教程 笔记 pdf
思维导图:含括多线程概念,线程创建开启方式,线程安全,线程状态及常见问题
这是自己用了两个星期完成的仓库管理系统,用了JavaSE的Swing技术,对于初学者来说绝对是一个很优秀的案例。里面有视频教程,是自己的录像,肯定会对大家有很大的帮助。也有软件的说明文档。
JavaSE进阶 面向对象继承
JavaSE基础教程(新手必读) JavaSE基础教程(新手必读)
关键字super/this的用法和区别;在继承中子类和父类构造方法的关系;方法重写;final关键字
JavaSE基础教程PPT和源代码.zip
JavaSE基础入门视频教程33天之(24),有利于没有基础的人学习,学精后工资10K以上。
JavaSE基础教程,功能强大,是一款非常好的工具,操作方便,效果好
最全的javaSE 教程,包含Java语言基础、流程控制、函数、数组、对象、修饰符、接口、内部类、集合、异常处理、多线程、IO框架、反射、OOAO初步等基础知识点汇总
这个文件里的内容适合Java初学者,这也是小编在刚开学学习JavaSE时记录的一些笔记,里面的内容非常适合JavaSE入门者学习,都是浅显易懂的话语,没有太多的官方话,绝对是你初学JavaSE的宝典,针对人群:刚入门的...