java学习日记3,面向对象之继承

一.面向对象之继承。
继承是面向对象的三大特征之一,继承可以使得子类(又称派生类)具有父类(又称基类和超类)的属性和方法,还可以在子类中重新定义,追加属性和方法。
继承的好处和弊端:使用继承能够很好的提升代码的复用性和维护性,但是也会增加代码的耦合性,使代码的独立性减弱,那么什么时候适合使用继承呢?当A类是B类的一种时我们推荐使用继承,让A类继承B类,例如:当我们有老师类,体育老师类,数学老师类时,我们就可以让体育老师类和数学老师类来继承老师类,这时老师类就是父类,体育老师类和数学老师类就都是老师类的子类。
继承的格式:public class 子类名 extends 父类名
子类和父类的关系:子类拥有父类的所有属性和方法,当然子类中也可以添加父类没有的属性和方法,可以把父类看成是子类的一个子集。当一个类在最初定义的时候没有给出父类,那么我们会默认Object类为它的父类,所以所有的类都直接或间接的继承自Object类。
二.继承中的访问特点。
**变量的访问特点:**在子类中如果我们需要使用一个变量,程序首先会在子类的局部范围类寻找这个变量(也就是在子类的成员方法中的局部变量中找),如果没有找到,那么程序就会在子类的成员变量中继续找,倘若子类成员范围内也没有该变量,就会把范围扩大至父类的成员范围,假设子类和父类中都没有该变量,程序就会报错(不考虑父类的父类)。
**构造方法的访问特点:**在创建子类对象时,调用子类构造方法时,会默认调用父类的无参构造方法,我们是无法在子类中直接调用父类的有参构造方法的,如果我们要在子类中调用父类的有参构造方法,我们就要用到关键字super。
**super关键字:**super关键字能让子类直接访问父类中没有被private修饰的属性和方法(拥有但不能访问),下面是super的基本用法:
super.成员变量,访问父类成员变量。
super(…)访问父类构造方法。
super.成员方法(…)访问父类成员方法。
注意:父类的私有变量和方法必须要用get()/set()方法来使用,无法用super方法直接访问。
三,子类方法的重写。
父类的方法可以在子类方法中直接重写,如果方法在子类中被重写,那么在子类对象中,子类中重写的方法会覆盖父类中被重写的方法,这时父类对象使用父类方法,子类对象使用子类方法。可以在子类中重写的方法前加@Override来检验重写的方法是否合法。
@Override关键字的作用是检查方法申明的正确性。
四,继承的注意事项。
1.Java中类只支持单继承,不支持多继承。一个子类只能有一个父类。
2.Java中类支持多层继承。允许一个类的父类继承另一个类,并可以层层嵌套。
3.子类中所有的构造方法默认都会访问父类中的无参构造方法。
4.子类会继承父类中的数据,可能还会使用父类的数据,所以,子类初始化之前一定要先完成父类的初始化。
5.每一个子类构造方法的第一条语句默认都是:super();
5.权限修饰符
private: 同一个类中调用。
默认 : 同一个类中调用。
同一个包中子类和无关类。
protected: 同一个类中调用。
同一个包中子类和无关类。
同包的子类。
public: 同一个类中调用。
同一个包中子类和无关类。
不同包的子类。
不同包的无关类。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值