码迷,mamicode.com
首页 > 其他好文 > 详细

覆盖 @override

时间:2019-06-06 14:11:58      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:不用   void   返回   基本数据   string   父类   col   obj   system   

覆盖,简单来说就是把父类中的某个方法复制过来。需要注意几点:

  • 形参的类型、个数要与父类一致;
  • 返回值类型分几种情况:
      • 父类返回值是void,子类也是void;
      • 如果是基本数据类型或者包装类则要与父类完全相同,比如父类返回值类型是 int型,则子类也必须是 int型。父类返回值类型是 Integer,则子类也要是Integer;
      • 如果是其他类型的话,子类的返回值类型可以是父类返回值类型的子类(包括本身),比如父类返回值类型是Object,子类返回值类型可以是Object或者String。

方法体可以重写,也可以继承父类方法体。需要继承就在子类的方法体内使用super。比如父类有一个方法为:

//父类方法
public void sayHello(String name) {
    System.out.println("Hello! " + name)
}

子类需要继承父类方法的话可以这样写:

1 @override //@override注解可以显式地指出这是一个覆盖方法,另外可以让编译器帮自己检查是否正确地覆盖了父类中的方法。当然也可以不用写。
2 public void sayHello(String name) {
3     //继承父类方法(也可以写在子类方法的下面)
4     super.sayHello(name); 
5     //子类自己的方法
6    System.out.println(name + ", Hello!");
7 }

因为Java中形参是没有默认值的,所以子类覆盖方法形参的个数需要与父类相同,在python中形参的个数是可以与父类中不同的,当然前提是其他形参都得有默认值????

覆盖 @override

标签:不用   void   返回   基本数据   string   父类   col   obj   system   

原文地址:https://www.cnblogs.com/runrua/p/10984306.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!