java小白的学习之旅———对继承的理解2
前面已经说过,儿子可以推陈出新。
水果是不是要用具体的方法把它给处理了之后才能吃?所以我们在fruit类里面加一种方法叫做处理方法。
class 柚子 extends fruit{
void 处理方法(){
}
}
然后呢,在吃这个方法之前,必须要调用这个方法对水果进行处理。
class people {
String name;
void eat (fruit c ){
c.处理方法();
System.out.print(name+"吃掉了"+c.name);
}
people(String name){
this.name=name;
}
}
但是呢,每个水果的处理方法是不同的,有些是要剥皮,有些是要切开。
在每个子类里面重新对这个方法进行书写。
class 苹果 extends fruit{
void 处理方法(){
System.out.print(name+"被切开了");
}
}
那么,像如上这种,父亲的方法,子类中也有,并且参数一致,我们就把这种子类重新把父亲的方法“发扬光大”的行为,叫做“重写”!
敲黑板!重写重载要分开啦!
重写,一定是父子之间的,而且传入的参数要相同,像上述的方法,就是都没有参数。你想想,你跟你爹总要有点一样的东西吧,你要是体内有一个y或者x染色体不是你爹的?????啊这(狗头保命)。
还有几个有意思的关键字。
1.abstract
2.static
3.final
4.public
5.protect
6.private
7.默认的(就是啥都不写)
1.先看abstract。
意思叫做抽象的,抽象的意思就是,啥也没有~~~
比如有一位父亲,没有什么东西可以给儿子,没办法,伸手比划了个钱包的样子,说,儿子嗷,这是个带钱包,但是需要你去用努力去装饰它,然后把它用钱塞得满满的。
好家伙,给个真钱包就算了,居然直接画画!这种啥都不给的,我们就叫他抽象啦。
抽象可以修饰类,就比如上文的修饰钱包,还有修饰方法,就是比如上文提到的“去用努力填充钱包”,好家伙,啥都不说,光叫你努力了。
abstract class 钱包{
abstract void 挣钱方法();
}
就像这样,抽象的挣钱方法,你康康连花括号都没了,实在是太抽象了。
那抽象的可以实例化吗(就是new)?
不能!因为方法啥的都不完整,new出来也没啥意思,干脆就让new不可实现好了。
抽象的可以继承不?
当然,空气钱包可以继承,通过一代代人的努力,就变成了真的钱包,甚至里面还有很多钱捏!
抽象的也可以继承抽象的,空气钱包也可以当传家宝的嘛~~~
另外,抽象类里面可以有具体方法,比如空气钱包我可以测一测它的重量,所使用气体的摩尔体积等等。
但是,抽象方法只能在抽象类里面,不然会报错。
。。。。。。。。。
突然困了起来,睡觉觉去了,咱们明天再说,See you!~~~
本文地址:https://blog.csdn.net/weixin_52291069/article/details/110941497