JAVA基础-继承和抽象类

继承

概念: 将多个类中具有相同的属性和行为单独抽取到一个类中,其他类继承继承该类,就不在需要定义这些属性和方法,即子类继承父类的属性和行为,使得子类对象具有与父类相同的属性和行为,子类可以直接访问父类中非私有的属性和行为。
在java中只支持单继承方式。

举例: 比如兔子类和老虎类都是动物,就可以将其提取为一个动物类,老虎和兔子都继承动物类。所以父类更抽象,子类更具体。

好处: 提高代码复用性;类与类之间产生关系,是多态的前提。

继承关系中成员变量的访问:
成员变量不重名时:子类中可以直接访问父类中的属性。
成员变量重名时:子类直接访问只能访问到自己的同名属性,想要访问父类中的同名属性需要通过super关键字来访问。

继承关系中成员方法的访问:
成员方法不重名时:当调用方法时先在子类中查找有没有该方法,如果没有再去父类中查找。

成员变量重名时:就相当于重写(override),会访问子类中重写的方法。
重写(override)的概念:在继承关系中,子类拥有和父类相同的方法名、参数列表的方法,与返回值无关,子类方法上写上@Override注解。

继承关系中的构造方法:
构造方法的定义格式:

  1. 造方法名和类名一致,所以子类无法继承父类中的构造方法。
  2. 构造方法的作用就是初始化成员变量。子类初始化之前会先初始化父类,即在调用子类的无惨初始化方法时会在第一行调用super()方法来调用父类的无参初始化方法。

抽象类

概念: 通过abstract关键字修饰的类就是抽象类,

抽象方法定义: 被abstract修饰的方法,并且没有方法体。

注意事项:

  1. 抽象类不能创建对象,如果创建,编译无法通过,只能创建抽象类的子类对象。
  2. 抽象类中可以有构造方法,其提供子类创建对象时,初始化父类成员使用,
  3. 在抽象类中,不一定有抽象方法,但是抽象方法一定在抽象类中
  4. 抽象类的子类必须重写父类中的所有抽象方法,不然自己也需要定义成抽象类。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值