前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java-override重写

Java-override重写

作者头像
Fisherman渔夫
发布2019-07-30 17:35:35
6030
发布2019-07-30 17:35:35
举报
文章被收录于专栏:渔夫渔夫
代码语言:javascript
复制
package cn.gg.oo2;
public class TestOverride {
public static void main(String[] args){
	Horse h = new Horse();
	h.run();
}

}


class Vehicle{
public void run(){
	System.out.println("跑..跑..跑..");
}

public void stop(){
	System.out.println("停!!");
}

public Person WhoIsPsg(){
	return new Person();
}
}

class Horse extends Vehicle{
public void run(){
	System.out.println("四蹄翻飞,得得得...");
}

public Boy WhoIsPsg(){//返回值小于等于父类的类型,虽然语言上说是父亲大于孩子,但	是	孩子继承了父亲后可以后父亲没有的方法和属性,所以返回值只能范围更广,而不能更小
	return new Boy();//如果父类和子类中的Person和Boy交换,会报错,返回值无法兼容
}
}

方法的重写需要符合下面的三个要点: 1.“==”: 方法名、形参列表相同。也就是说如果不一样,比如在Horse 类里定义的方法run改为run1,那么会造成在main函数里调用时run就是调用的父类Vehicle里的run。也就是说,方法名、形参名之一有不同,则相当于子类在继承父类的基础上重新写了一个方法,并不是“重写”。 2.“≤”:返回值类型和声明异常类型,子类小于等于父类。

继承关系
继承关系

Horse继承了Vehicle,Horse里有Vehicle类中没有的部分;所以在Horese重写的时候,返回值的类型也必须有类似父子关系的继承关系 3.“≥”: 访问权限,子类大于等于父类

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年03月30日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档