面向对象的三大特征之二:继承

面向对象的三大特征之二:继承

java中提供了一个关键字extands,用这个关键字,可以让一个类和另一个类建立起父子关系

Public class B extands A {
	
}

A类称为父类(基类或超类)

B类称为子类(派生类)

继承的特点

子类能继承父类的非私有成员(成员变量、成员方法)

继承后对象的创建:

子类的对象是由子类、父类共同完成的(子类对象实际上是由子父类这两张设计图共同创建出来的)

继承的相关注意事项
  1. 权限修饰符
  2. 单继承、Object类
  3. 方法重写
  4. 子类中访问其他成员的特点
  5. 子类构造器的特点
  6. 注意事项的小结
  • 权限修饰符

就是用来限制类中的成员(成员变量、成员方法、构造器、代码块)能够被访问的范围

权限修饰符有几种?各自的作用是什么?

修饰符在本类中同一个包下的其他类任意包下的子类任意包下的任意类
privatetrue(x)(x)(X)
缺省truetrue(x)(x)
protectedtruetruetrue(x)
Publictruetruetruetrue

private < 缺省 < protected <Public

  • 单继承、Object类

java是单继承的,java中的类不支持多继承,但是支持多层继承Object类

Object类是java所有类的祖宗类,我们写的任何一个类,其实都是Object的子类或者子孙类

  • 方法重写

什么是方法重写?

当子类觉得父类中的某个方法不好用,或者无法满足自己的需求时,子类可以重写一个方法名称,参数列表一样的方法,去覆盖父类的这个方法,这就是方法重写

注意:重写后,方法的访问,java会遵循就近原则(先访问子类的重写方法)

方法重写的其他注意事项
  1. 重写小技巧:使用Override注解,它可以指定java编译器,检查我们方法重写的格式是否正确,代码可读性也会更好
  2. 子类重写父类方法时,访问权限必须大于或者等于父类该方法的权限(Public > protected > 缺省)
  3. 重写的方法返回值类型,必须与被重写方法的返回值类型一样,或者范围更小
  4. 私有方法,静态方法不能被重写,如果重写会报错
方法重写在开发中常见应用场景

子类重写Object类的toString()方法,以便返回对象的内容

  • 子类中访问其他成员的特点
  1. 在子类方法中访问其他成员(成员变量、成员方法),是依照就近原则的,现在子类局部范围找,然后子类成员范围找,然后父类成员范围找,如果父类范围还没有找到则报错
  2. 如果子父类中,出现了重名的成员,会优先使用子类的,如果此时一定要在子类中使用父类的,可以通过super关键字,指定访问父类的成员:super.父类成员变量 | 父类成员方法
  • 子类构造器的特点

子类的全部构造器,都会先调用父类的构造器,再执行自己的构造器

子类构造器是如何实现调用父类构造器的
  1. 默认情况下,子类全部构造器的第一行代码都是super(),它会调用父类的无参数构造器

  2. 如果父类没有无参数构造器,则我们必须在子类构造器的第一行手写super(…),指定去调用父类的有参数构造器

  3. 子类构造器可以通过调用父类构造器,把对象包含父类这部分的数据先初始化赋值,再回来把对象里包含子类这部分的数据也进行初始化赋值

补充知识:this(…)调用兄弟构造器

任意类的构造器中,是可以通过this(...)去调用该类的其他构造器的

  • 注意事项的小结

this(…) 和 super(…)使用时的注意事项

this(…)、super(…)都只能放在构造器的的第一行,因此有了this(…)就不能写super(…)了,反之,有了super(…)就不能写this(…)

this(…)、super(…)都只能放在构造器的的第一行,因此有了this(…)就不能写super(…)了,反之,有了super(…)就不能写this(…)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值