方法覆写

想要方法覆写的,那么必须是继承关系才可以

执行顺序,香港服务器,调用方法时先到子类查找有没有该方法,如果有则执行该方法,如果没有就到父类去查找……………

方法覆写时应遵循的原则是:

一同:子类的方法签名必须与父类的方法签名相同

两小:

1、子类方法的返回值类型必须是父类方法的返回值类型的子类或相等,也就 是子类方法的返回值类型必须比父类方法返回值类型小。

2、子类方法声明抛出的异常应比父类抛出的异常更小或相等。

一大:子类方法的访问权限必须比父类方法的访问权限大,比如:

Public>protected>default>private

1 package xiao.li.one; 方法的复写 4 { main(String[] args) 6 {System.out.print(“鸵鸟:”); 9 o.fly();System.out.print(“乌鸦:”);12 c.fly(); 13/* 输出结果为: 鸵鸟:我在飞14 *乌鸦:我在飞15 * 上面这两个对象里没有创建fly()方法啊,可为什么也会输出Bird里的fly()方法?16 * 因为Ostrich类与Crow类都继承了Bird类,那么Ostrich和Crow类都是Bird类的子类,子类可以调用父类的方法与字段,17 * 在调用方法的时候首先会在子类中查找有没有该方法,香港虚拟主机,如果没有则到父类寻找。18 * 为什么要继承呢?因为它们都是属于鸟类。19 * 20 * 我想问下,鸵鸟会飞吗? 肯定不会啊,所以这个方法不符合要求。21 * 所以这时我们可以在鸵鸟类添加一个与父类一样的方法,然后修改方法体就OK了,这就形成了覆写。22 * 23 * 那么方法覆写的时应遵循的原则(一同两小一大):24 *一同:父类的方法与子类方法签名必须相同25 * 26 *两小:27 *1、子类方法的返回值类型必须是父类方法返回值类型的子类或相等,也就是子类方法的28 *返回类型必须比父类方法的返回类型小,比如String就比Object小。29 *2、子类方法声明抛出的异常应比父类方法声明的异常更小或相等。30 * 31 *一大:子类方法的访问权限必须比父类方法的访问权限大或相等,比如:32 *public > protected > default > private; 33 *但是父类方法的访问权限是private的话,子类就不能覆写了。34 * 那么如何判断一个方法能不能覆写呢?35 * 直接在子类的方法上方 写 @override36 * }39 } * 鸟类 Bird44 { fly()46 {47System.out.println(“我在飞”);48 }* private void fly()private修饰的话子类就不能继承了51 * {52 *System.out.println(“我在飞”);53 * }} * 鸵鸟Ostrich extends Bird60 { fly()62 {63System.out.println(“Sorry,我不会飞,网站空间,我只会跑”);64 }65 } * 乌鸦Crow extends Bird70 {71 // @Override这样的话在eclipse编译器里会自动报错,本方法不能覆写73 // {}就是对虚怀若谷谦虚谨慎八个字真正理解的人,

方法覆写

相关文章:

你感兴趣的文章:

标签云: