这几天在实训过程中做到了一个题,这个题目问的是 非抽象类实现接口后,必须实现接口中的所有抽象方法,除了abstract外,方法头必须完全一致。这句话是错误的。然后在做错以后自己总结一下重载 重写 和实现的几个点。
重载:方法名一致即可,访问修饰符、返回值类型无关,然后不同的重载方法参数列表的参数的顺序,类型,数量进行变换即可。
重写:重写方法的访问修饰符可以不同,但访问权限需要比父类中的大,比如protected修饰的方法重写的时候可以重写为public类型。返回值类型可以是父类中方法返回值类型的子类,比如父类中的方法返回Object类型,我们自己有一个类叫做Student类,然后我们在重写这个返回Object的方法时可以重写为返回Student类型。方法标签需要一致。
例:Student是Person的子类
父类中protected abstract Person aaa();子类中重写为public Student aaa(){}
方法实现:接口方法的实现访问修饰符默认为 public,所以实现的时候方法也应该是public。返回值类型同重写,也可以为这个返回值类型的子类,其他要求一致。
写一下心得体会,以后忘了自己回来看看,如果有错误欢迎指正,如果还有需要注意的地方也请指教一下。