- 方法覆盖需要哪些条件?
- 需要发生在有继承关系的两个类中,子类继承得到父类的某些方法觉得父类的实现不好,于是在子类里面重新实现一下
- 方法覆盖需要注意
-
public void test() throws Exception{} | | 脑袋 躯干 尾巴 脑袋:访问权限修饰符 >= 父类的权限 Sun公司认为子类重新实现的方法应该更加优秀 更加优秀的方法 应该给更多的人使用 这样才利于java的发展 躯干:返回类型 + 方法签名 jdk5.0之前 一模一样 jdk5.0开始 协变返回类型 尾巴:异常处理部分 <= 父类的异常 [范围] Sun公司认为子类重新实现的方法应该更加优秀 更加优秀的方法 不应该有更多的隐患
-
jdk5.0开始,方法覆盖的时候可以加@Override ,表示下面的方法一定要覆盖父类的某些方法
-
jdk5.0开始,方法覆盖的时候 ,其实返回类型可以改变了
-
可以变成父类方法返回类型的子类类型 -》 协变返回类型
-
public class TestOverride2{ public static void main(String[] args){ After90 x = new After90(); x.research(); } } class After70{ public void research(){ System.out.println("打电话问亲朋好友"); System.out.println("查阅资料"); System.out.println("找村长"); } } class After90 extends After70{ @Override public void research(){ System.out.println("百度一下"); super.research();//在子类调用一下父类的某个属性/方法 } }
-
public class TestOverride4{ public static void main(String[] args){ } } class Animal{ //产仔 public Animal chanZai(){ Animal aa = new Animal(); return aa; } } class Cat extends Animal{ @Override //子类方法chanZai返回类型可以变成父类方法chanZai返回类型Animal的子类类型Cat public Cat chanZai(){ Cat cc = new Cat(); return cc; } } class Dog extends Animal{ @Override public Dog chanZai(){ Dog dd = new Dog(); return dd; } }
-
小小初识java(24)-方法覆盖
最新推荐文章于 2024-10-11 10:31:50 发布