继承与抽象类

1. 继承extends

理解:
将java中很多类具有的相同的方法和属性,提取成一个基类(父类),其余类继承基类,提高代码的复用性和可维护性。

Java中继承的特点:
Java中只支持单继承,不支持多继承。即一个类只能拥有一个父类。
Java支持多层继承如:
class A{}//父类
class B extends A{}//A的子类
class C extends B{}//B的子类 C即拥有B的属性又拥有A的属性

继承中成员变量的特点:

  • 子类只能继承父类非私有成员
  • 子类可以使用父类中的变量,当子类中变量名与父类中变量名一样时,子类中变量有效
  • 子父类变量名相同,但是又想使用父类中的变量可以使用super.变量名

方法重写: 子类中的方法和父类中的方法完全一样即函数名和参数完全相同(覆盖)
方法重载: 在一个类中有多个方法函数名一样,但函数的参数不一样(如:参数的个数、参数的类型、参数的顺序),与函数的返回值无关。

继承中成员方法的特点:

  • 子类中没有重写父类的方法,则调用父类的方法。
  • 子类中重写了父类的方法,则覆盖父类的方法。

重写的应用场景 : 当父类中的方法无法完全满足子类的要求时,子类可重写父类中的相应方法,在重写的方法中如果需要父类中的东西就可以用super.的形式来使用父类中的成员变量或成员方法

@注解: 一般出现在类、方法、变量上注解本质也是代码,起到规范的作用如:
@Override 该注解下的方法为重写父类的方法

重写的注意项:

  • 不能重写父类中的私有方法
  • 重写方法的权限只能是大于等于父类权限

继承中构造方法的执行顺序:

  • 创建子类对象时,一定是先执行父类中的构造方法,因为在子类的构造方法中可能会用到父类中的变量或方法。
  • 在子类构造方法的第一行可以使用super()调用父类构造方法。
  • 若子类的构造方法第一行没有调用父类的构造方法,则默认调用父类无参构造方法。
  • 子类构造方法中若第一行使用了this()调用本身其他构造函数则由其调用的子类构造函数调用父类构造函数。

2.抽象abstract

理解:
abstract 是一个修饰符,可修饰类和方法。如果一个类被abstract修饰它就为一个抽象类。抽象类中的抽象方法也用abstract修饰只需给出函数名不写具体的方法体,方法的具体实现交给继承该抽象类的子类。

抽象的特点:

  • 一个含有抽象方法 的类只能是抽象类
  • 抽象类不能创建对象(不能实例化)
  • 抽象类中可以有非抽象方法,也可以不含有抽象方法但没有意义
  • 一个类继承于一个抽象类,要么实现抽象类中所有抽象方法,要么把自己变成一个抽象类
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值