继承
- 何为继承
所谓继承,即子类拥有父类的所以成员变量和方法,并能自己定义额外的成员变量和方法。
- 如何实现
通过extends关键字来定义一个类的子类,其中,由继承得到的类称为子类,被继承的类称为父类。每一个子类只能有一个父类。
- 对子类与父类继承性讨论
1.当子类和父类在同一个包中时:子类继承了不是private的成员变量和方法作为自己的成员变量和方法,继承后访问权限保持不变。
2.当子类和父类不在同一个包中时:父类中的private和友好访问权限的成员变量和方法无法被子类继承。
Proteced与友好型限制符的比较:当子类继承了被Protected修饰的父类的成员变量或方法后,即便子类与父类不在一个包中,也能使用,而友好型则不可以,即友好型与protected的区别仅在子类与父类时有区别。
四.Instanceof运算符
用来判断该对象是不是由右面的类或子类所创建的对象,当结果为真时,返回ture,否则,返回false
五.成员变量的隐藏
当子类声明的成员变量名称与从父类继承得来的成员变量的名字相同时(类型可以不同),
子类就会隐藏所继承的成员变量
六.方法重写
子类定义一个与父类的方法类型或时父类方法的类型的子类型(子类型指,父亲方法的类型为“类”,子类重新的方法类型可以为“子类”),且方法的名字,参数个数,参数类型与父类必须完全相同。
当子类重写了父类的方法后,子类对象调用的方法为重写后的方法
七.Super关键字
1.当隐藏了成员变量,重写了方法之后,若要使用这些成员变量和方法,则必须使用super来进行调用
2.对于构造方法来说,子类在创建对象时使用的是父类的构造方法,当没使用super关键字时,默认的使用无参数的构造方法,若要使用有参的构造方法,需用super关键字
八.Final关键字
- 修饰类:fianl类不能被继承,不能由子类
- 修饰方法:不允许子类重写
- 修饰方法中的局部变量:常量,在运行期间不允许改变,故需要在声明时初始化(赋值)