Java 继承基础知识

Java 中的继承可以类比于现实世界中的继承,如:子女从父母继承手艺、财富。具体而言,Java 代码中的子类继承父类,使得父类代码为子类所用,而且继承也是方法覆盖和多态机制的基础。

概念

超类与子类

B 类继承 A 类,则称 A 类为超类(superclass)、父类或基类;B 类则称为子类(subclass)、派生类或扩展类。

Java 中的任何类都默认继承 Object 类,Object类是 Java 语言提供的根类,任何一个对象与生俱来就有 Object 类中所有的特征。

class A{};
class B extends A{};

单继承与多继承

Java 中的继承只支持单继承,不支持多继承,这体现了 Java 的简单性。

// 多继承是错误的
class B extends A,C{ 
};

虽然 Java 中不支持多继承,但可以产生间接的多继承,如:

class C extends B{};
class B extends A{}; // C 直接继承 B, C 还间接继承 A。

继承后的访问

Java 中规定子类继承父类,构造方法不能继承之外,剩下都可被继承。

但父类中 private 修饰的属性和方法无法在子类中直接访问,需间接访问。

继承的缺点

耦合度高。CreditAccount 类继承 Account 类会导致它们之间的耦合度非常高,Account 类发生改变后会影响到 CreditAccount 类。

何时用继承

凡是能采用 `is a`` 描述的,都可以使用继承。例如:Cat is a Animal(猫是一个动物,Cat 类继承 Animal 类);Credit_Account is a Account(信用卡账户是一个银行账户,Credit_Account 类继承 Account 类)

当两个类中有相同的属性或方法,可以用继承来简化代码。但此时也需要注意是否符合逻辑,如下例所示,产品类不适合继承顾客类

class Customer{
    String name; // 名字
    // setter and getter
}

class Product extends Customer{}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值