面向对象编程正常化03
继承02
Super
-
super的应用场景
当需要调用到父类中的构造器,方法时便需要用到super来调用。
-
super注意点
-
super是调用父类的构造方法时,必须在构造方法的第一个,一般这个是隐藏着的。super();
-
super必须只能出现在子类的方法或者构造器中
-
super和this 不能同时调用构造方法
-
与this的区别
-
代表的对象不同。this代表本身调用自己的构造器与方法,super代表调用父类对象的应用
-
前提不同。this没有继承时也可以用,但是super只能在继承条件下才能够使用
-
构造方法不同。this();与super();
重写
-
为什么需要用到重写呢
-
父类的功能子类不一定需要,或者不一定满足,就像猫是动物类的,动物类有一个方法为shout,猫就需要重写这个方法,并改成喵喵喵
-
重写的快捷键也是Alt + Enter -->Override
-
一下简单记录一下对于重写的理解
-
由于子类会完全的继承父类的方法,但有的时候,子类需要的是和父类不同的方法,就要进行重写
-
子类重写父类的方法时,都是走的子类方法
-
子类用了特殊的方法实现,替换掉父类继承给他的方法
-
重写的注意点
-
方法名必须相同
-
参数列表必须相同
-
修饰符:范围可以扩大public>Protectes>Default>private
-
抛出的异常:方位可以被缩小,但不能扩大; ClassNotFoundException --> Exception(大)
-
子类的方法和父类必须一致,但是方法体不同
-
使用重写时需要注意是否为静态的方法
-
静态方法是类的方法,而非静态是对象的方法
-
有static时,b调用了B类的方法,因为b时用B类定义的
-
没有static时,b调用的时对象的方法,而b时用A类new的
-
总结就是:静态方法与非静态方法的区别很大
-
静态方法:方法的调用只看类(通俗点理解就是让儿子当爸爸,儿子就需要承担爸爸的责任,于是调用了父亲的方法,而非静态才是真的重写了)
-
非静态方法:方法的调用看对象
多态
-
多态即同意方法可以根据发送对象的不同而采用多种不同的行为方式。
-
一个对象的实际类型是确定的,但是可以指向对象的引用的类型有很多。(父类,有关系的类)
-
多条存在的条件
-
有继承关系
-
子类重写了父类的放啊
-
父类引用指向子类对象 Father f1 = new Son();
需要注意的是多态是方法的多态,属性没有多态性
-
以下是我简单的总结
**1. 使用父类类型的引用指向子类的对象
-
该引用只能调用父类中定义的方法和变量
-
如果子类中重写了父类中的一个方法,那么调用这个方法的时候,将会调用子类的方法
-
Person s2 = new Student(); 编译时看左边,运行时看右边
-
子类能调用父类的方法和自己的方法,父类就只能调用自己的方法,父类可以用自己的和子类重写的,但是不能用子类独有的 注意事项
-
多态是方法的多态,属性没有多态
-
父类和子类,有联系 类型转换异常 ClassCastException!
-
多态存在的条件:继承关系,关系需要重写,父类引用指向子类对象 Father f1 = new Son(); 无法重写:
-
-
static 方法,属于类,他不属于实例
-
final 常量
-
private 方法**
-
-
以下是代码实例
2022.10.11 星期二
今天看了三个视频,好绕啊妈的,什么重写多态,真的有点晕,不过好在弹幕大神多,基本上我都能理解,不过以后可能还得多看看其他视频或者书籍巩固一下知识点。
最近健身状态还可以吧,继续努力,体重来到了89.3kg哈哈,健身了快一个月只瘦了几斤啧啧,还需要努力啊,还有18天就是我姐婚礼咯,加油减!