java子类中方法的重写与重载

首先,做简单的代入:父类 = 父亲子类 = 儿子

然后,父类与子类中都有eat()这个方法(eat() = 吃饭

故事开始了,父亲是一个朴实简单的人,所以每次吃饭都用同一双筷子,同一个碗,每顿吃的菜都只有一个菜,青菜

现在我们来简单的建立一个父类,名字就叫 father,在父类中定义一个简单的 eat(String kuaizi,String wan),两个固定的参数,而方法内部加一些简单的实现,例如吃了什么菜,eat qingcai

package text;
public class Father {
	protected boolean eat(String kuaizi,String wan){
		System.out.println("eat qingcai");
		return true;
	}
}

父亲生了一个儿子,儿子小的时候也跟父亲一样,每次吃饭都用同一双筷子,同一个碗,每顿吃的菜都只有一个菜,青菜

现在我们再来建立一个子类,名字就叫son,ectends父类,与父类一样,都有一个一样的eat方法,那么很简单,子类中的方法就是重写了,相当于完全复制了一遍,当然这是最简单的方法重写,就是完全复制一次

package text;

public class Son extends Father{
	protected boolean eat(String kuaizi,String wan){
		System.out.println("eat qingcai");
		return true;
	}
}

上面是最简单的重写,然而java的方法时有权限修饰的,public,protected,default,private

那么子类方法重写涉及到了权限,那么权限必须不低于父类中的,其隐私性比父类的低或者同等,所以子类中方法可以用public修饰,也可以跟父类中的一样,使用protected

package text;

public class Son extends Father{
	public boolean eat(String kuaizi,String wan){
		System.out.println("eat qingcai");
		return true;
	}
}

故事继续,儿子慢慢长大,觉得青菜已经无法满足了,他觉得吃饭每次都吃青菜,实在是无法忍受的事情,于是他吃饭的时候加多了一种菜,白菜,而父亲却不喜欢吃白菜,依旧每顿都是青菜

这里是方法重写的另外一种情况,那就是方法内部实现的修改,但是参数和返回值其实是一样的,都是吃饭,但是儿子已经与父亲不同,他吃饭的过程,已经多出了要吃白菜,所以方法重写的内部实现的局限在于参数,方法名,返回值不变,其内部如何实现,可以根据自己需求来写

package text;

public class Son extends Father{
	public boolean eat(String kuaizi,String wan){
		System.out.println("eat qingcai");
		System.out.println("eat baicai");
		return true;
	}
}

---------------------------------------华丽的分割线--------------------------------------------

前面是方法重写,接着来讲方法重载

---------------------------------------华丽的分割线--------------------------------------------

故事继续,对于吃饭,儿子觉得用筷子吃饭,太麻烦了,于是他换了勺子,不再用筷子,但是有时候用勺子夹菜不方便,于是他有时候吃饭会一手勺子,一手筷子

首先来说方法重载参数问题,参数,是可变的,如果是重载,参数必须跟父类的不一样,就好像再说,你吃饭可以,但是不能和我一样只用同一双筷子和碗,然后,你爱怎么吃怎么吃,所以方法的重载,参数的自由性是很强的,甚至可以没有,当然如果没有,那么你吃饭失败,这又涉及到了方法的返回值,下一轮讲

	public boolean eat(int shaozi,String wan){
		System.out.println("eat qingcai");
		System.out.println("eat baicai");
		return true;
	}

方法重载的返回值,可以相同,也可以不同,关于方法重载的权限修饰,那时属于你自己的事情,什么权限都可以用来修饰

故事最后,吃饭的父子到此结束,老夫累了,有时候突然想想,发现编程与生活中很多东西如此相似,也许这就是万事万物的规律,编程的创始人的灵感来源于生活,我们便不应该把学习编程与生活脱离开来,这样才能愉快的玩耍

方法重写:子修饰权限不能低于父,方法实现过程随意,只有方法名、参数、返回值不变

方法重载:子参数类型不能完全与父同,方法名必须同,其他实现过程、参数、返回值随意

方法的权限修饰大小:public > protected > default > private

 

转载于:https://my.oschina.net/yueshengwujie/blog/676021

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值