java @Override 方法的重写
方法的重写 :有了继承以后就可以考虑使用方法的重写。子类可以对父类中的方法进行覆盖。说明:当子类重写了父类中的方法后。那么再通过子类对象调用相同的方法,实际上调用的是子类重写父类的方法。使用方法的重写的场景 :如果子类对父类中的方法不满意那么可以考虑使用方法的重写---------------------------------细节先了解------------------------------
@Override标签的作用:@Override是伪代码,表示方法重写。@Override标签的好处:
- 作为注释,帮助自己检查是否正确的复写了父类中已有的方法
- 便于别人理解代码
- 编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错.
方法的重写 :
有了继承以后就可以考虑使用方法的重写。子类可以对父类中的方法进行覆盖。
说明:
当子类重写了父类中的方法后。那么再通过子类对象调用相同的方法,实际上调用的是子类重写父类的方法。
使用方法的重写的场景 :
如果子类对父类中的方法不满意那么可以考虑使用方法的重写
---------------------------------细节先了解-----------------------------------------
权限修饰符 返回值类型 方法名(形参列表){
方法体
}
父类被重写的方法 , 子类重写的方法
-
子类重写的方法的权限修饰符 不小于 父类被重写方法的权限修饰符。
-
子类重写的方法的方法名和形参列表必须和父类被重写方法的相同。
-
父类被重写的方法的返回值类型 子类重写的方法的返回值类型
void void
基本数据类型 对应的基本数据类型
引用数据类型 对应的类型及子类的类型 -
子类方法抛出的异常不能大于父类被重写方法的异常 (等讲到异常时再讲)
注意:
1.父类中被private修饰的方法,子类不能重写。
2.子类和父类中相同的方法要么同时加static(不是方法的重写)要么同时不加static(方法的重写)
class Animal{
//父类被重写的方法
public void say(){
System.out.println("动物说话了......");
}
//private 缺省的 protected public
protected void a(){
}
//Object <- Number <- Integer (父类大,子类小)
public Number c(){
return null;
}
//1.父类中被private修饰的方法,子类不能重写。
private void d(){
}
public static void f(){
}
public void info(){
}
}
class Dog extends Animal{
@Override
public void info() {
}
//子类和父类中相同的方法要么同时加static(不是方法的重写)要么同时不加static(方法的重写)
public static void f(){
}
// @Override
// private void d(){
//
// }
@Override
public Integer c(){
return null;
}
@Override
public void a(){
}
//方法的重写
@Override //注解 - 用来说明所注解的方法是一个重写的方法,如果不是则会报错
public void say(){//子类重写的方法
System.out.println("汪汪汪......");
}
}
public class OverrideTest {
public static void main(String[] args) {
Dog dog = new Dog();
dog.say();
}
}
更多推荐
所有评论(0)