类与类之间的关系-继承

类与类之间的关系

  • A is-a B 泛化 (继承 实现)
  • A has-a B 包含 (组合 聚合 关联)
  • A use-a B 依赖 (依赖)

类关系设计:高内聚 低耦合 :继承(实现)>组合>聚合>关联 > 依赖

继承

  • 1.子类继承父类,通过一个关键字 extends

  • 2.子类对象可以调用父类中的(public protected)属性和方法 当作自己的来使用

  • 3.子类可以添加自己独有的属性和方法

  • 4.子类从父类中继承过来的方法不能满足子类需要,可以在子类中的重写(覆盖 override)父类的方法 更多指的是内容

  • 5.每一个类都有继承类,如果不写extends关键字,默认继承Object,如果写了extends则继承后面的那个父类

    Object 类,是任何引用类型的父类(直接或间接的继承Object类),Object类没有父类。

  • 6.java中的继承是单个存在的(单继承)每个类只有一个继承类(在extends关键字后面只能写一个类)

    可以通过传递的方式实现多继承的效果 可以用实现

  • 8.关于this和super的使用

    • this 和 super 都是指代词 代替的是对象

      this 代替的是 当前执行方法的那个对象 不一定是当前类

      super 代替的是当前执行方法的对象的父类的对象 空间内部的那个

      都能调用一般属性和一般方法

    • 可以放在类成员的任意位置(属性 方法 构造 块)

      注意调用一般方法的时候可以来回互相调用(写法 编译好用)执行可能产生问题(StackOverflowError)

      可以调用构造方法(放在构造方法的第一行)

    • 调用构造方法时:this 和 super不能同时出现,因为都需要放在第一行

    • 构造方法之间来回不能互相调用(编译就不好用)

方法重载于方法重写的异同

比较方法重写(OverRide)方法重载(OverLoad)
产生两个继承关系的类一个类中的一组方法 子类重写父类方法
权限子类可以小于等于父类没有要求
特征final static abstract 父类的方法是final 子类不能重写 ,父类的方法是static 子类不存在 , 父类的方法是abstract 子类必须重写没有要求
返回值子类可以大于等于父类没有要求
名字必须与父类方法相同必须相同
参数必须相同类型或个数或顺序必须不同
异常异常 运行时 编译时 如果父类方法抛出运行时异常 子类可以不予理会;如果父类方法抛出编译时异常 子类抛出异常的个数少于等于父类,子类抛出异常的类型少于等于父类。
方法体子类的方法内容与父类不一致每个重载的方法执行过程不一致
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值