【java】基础入门(四)

本章主要介绍一下java的三大特征之——继承

继承

说到继承,我们就先看看字面意识

以下是百度百科找的

继承,汉语词语,意为按照法律或遵照遗嘱接受死者的财产、职务、头衔、地位等。

释义:

依法承受(死者的遗产等):~权|~人。

泛指把前人的作风、文化、知识等接受过来:~优良传统|~文化遗产。

后人继续做前人遗留下来的事业:~先烈的遗业。

其实这些不看大家都知道,继承就是“子继承父”的关系

继承实现

 继承在 java 中通过 extends 来体现,如下代码中

class A{}
class B extends A{}
class C extends B{}

类A为类B的父类 (也称类A为类B的超类)

类B为类A的子类 为类C的父类(也称类B为类C的超类)

类C为类B的子类

理解继承

extends

翻译过来的意思是:扩大;扩展;使增加长度,以下是剑桥字典对其解释

to add to something in order to make it bigger or longer
添加到某些内容中以使其更大或更长

class A{}
class B extends A{}
//B类添加到A类中使其更特定,更完整

说了这么多,我们将继承具象化一点;

假设 A 类为 Animal 类,B 类为 Cat 类

class Animal{}
class Cat extends Animal{}

我们可以说 Cat 类 添加到 Animal 类中某些内容,使得 Cat 类更加的特定

 还是很抽象

我们再通过一个例子来看一下

现在有以下几个类:

猫(Cat),狗(Dog),狮(Lion),狼(Wolf)

我们讨论一下

Cat 能继承 Animal 吗,Dog 呢,Loin 呢,Wolf

当然能。

我们能细分一下吗:

比如猫科(Felidae),犬科(Canidae)?

Cat能继承Felidae(猫科)吗,Dog 呢,Loin 呢,Wolf

犬科(Canidae)呢

代码如下:

class Animal{/*动物类*/}

class Felidae extends Animal{/*猫科动物,继承动物类*/}
class Canidae extends Animal{/*犬科动物,继承动物类*/}

class Cat extends Felidae{/*猫,继承猫科动物*/}
class Dog extends Canidae{/*狗,继承犬科动物*/}
class Loin extends Felidae{/*狮子,继承猫科动物*/}
class Wolf extends Canidae{/*狼,继承犬科动物*/}

继承的属性和方法

通过idea演示

Animal 类中有 name 属性和 eat() 方法

Cat

在子类 Cat中并未定义 name 属性和 eat() 方法,但我还是可以调用eat() 方法,获取 name 属性,可看出,属性和方法也是可以继承下去的。

 重写

重写就是把父类中的方法重新写一遍,运行时是以子类的方法运行的

重写和重载的区别

重写发生在子类与父类之间,重载发生在一个类中(不止是这些)

IS-A 和 HAS-A

能否继承是否有标准呢,这个答案是是的,它是有这个标准的,这个标准就是IS-A

以上述举例:

Cat 和 Animal 之间的关系

Cat IS A Animal,猫是动物,这句话是成立的

还可以举出很多例子,如

狗是犬科动物

苏格拉底是人

汽车是代步工具等等

这些都是可以继承的

像名字和猫之间的关系

你只能说猫有名字,而不是名字是猫

就是Cat HAS-A Name

因此 Name可以作为Cat的属性

见此章结。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liulin_03

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值