day11每日一考
题目
1.什么是多态性?什么是虚拟方法调用?
2.一个类可以有几个父类?一个父类可有多少个子类?子类能获取直接父类的父类中的结构吗?子类能否获取父类中private权限的属性或方法?
3.方法的重写(override/overwrite)的具体规则有哪些
4.super调用构造器,有哪些具体的注意点
答案
第一题
多态性是父类可以声明任何子类的对象, 父类的引用指向子类的对象
虚拟方法调用是父类声明子类对象调用父类的方法,执行的实际上子类的重写的,编译看左面,执行看右面
第二题
一个类只能有一个父类
一个父类可以有至少一个子类
子类可以直接获取父类中的结构
子类能获取父类中private权限的属性或方法(是不能调用)
第三题
重写的规则:
只能重写父类的方法不能重写父类的属性
子类重写方法的权限不小于父类的被重写的权限
父类返回值为void,子类重写方法的返回值也只能是void
子类的返回值类型是被重写父类的类或子类
子类重写方法的抛出的异常不大于父类被重写的返回值
子类不能重写父类private方法
方法名与形参列表相同
第四题
super调用构造器必须放在首行
super(形参):调用父类中指定的构造器
什么都没写默认super()
一个类最多有n个构造器,最多有n-1个为this,至少一个有super