坚持是一件说起来容易,做起来不容易的事情。
#维承是面向对象的三大特征之一。因有了“继承”,自然界的生物才保持了物种的延续;在“继承”的基础上,经过亿万年的进化,生物间又出现了丰富多彩的变化,人类因为掌握了归纳的方法,得以化繁为简,对万物之间的关系有了清晰的理解。
在面向对象的语言中,因为有了继承,代码得以复用,软件质量有了更稳定的提高。
1、继承概述
#一个派生类将继承基类中包括内嵌类、方法和成员变量的所有成员。需注意,构造方法是一个特殊的方法,所有基类构造方法可以在派生类中调用,但是不会被派生类继承。
1.1 Java 平台中的类层次
在Java语言中,所有的类都有着严格的层级关系。除了根类,每个类都有唯一的父类。在自然界中,子类拥有诸多父类是很常见的现象,多重继承可以更真实地表达现实,但由于比较复杂,很容易出现属性冲突、重复继承的情况、使得开发更加闲难,因此Java 语言使用了单继承,即每个类只能有一个父类。
说明:java.lang包的 Object类是Java中的很类,所有的Java对象都拥有Object类的属性和方法。如果类的声明中未指明父类,则默认维系 Object类。
1.2 一个关于继承的示例
是涉及了Car类的案例。Car类是对各种汽车的基本概括,含有表示品牌,颜色和速度的成员变量及对这些成员变量属性进行读取的相应方法。
其代码如下:
public class Car {//定义三个私有成员变量,代表Car对象的三个属性//表示汽车品牌private String brand;//表示汽车颜色private Slring color//表示汽车速度private double speed;//定义一个带参的构造方法,用来初始化成员变量public AutoCar(String brand,String color,double speed){this.brand = brand;this color = color;this.speed spced;}//获得属性brand的值public String getBrand(){rerurn brand;}//获得属性color的值public String getColor(){return color;}//获得属性speed的值public double getSpeed(){return speed;}//设置属性speed的值public void setSpeed(int newSpeed){speed e newSpeed;}}
这里的Car类是泛指,代表广义概念上的汽车。如想要创建一个对于汽车描述述更具体的类,最简单且最合适的途径是从Car类派生出一个类,然后在这个派生类中增加新的特性(成员变量或方法)。
【例】编写程序,实现从Car类派生出一个类。
具体代码如下。
public class ChildCar extends Car {//在ChildCar派生类中增加一个成员变量,代表载重量public int load;//ChildCar 派生类有一个构造方法public ChildCar(int load,String brand,String color,double speed){//调用基类的构造方法super(brand.color,speed);//初始化派生类中新增加的属性this.load = load;}//为ChildCar 类增加设置load 属性值的方法public void setLoad(int load) {this.load = load;}//为ChildCar 类增加读取load属性值的方法public int getLoad(){retum load;}}
上述示例中,派生类继承了Car类的所有成员变量和方法,并增加了一个代表载重量的成员变量load和设置该成员变量值的setLoad()方法及读取该成员变量的getLoad()方法。#ChildCar类一共带有4个成员变量和6个方法。
当基类Car中的方法很复杂,且需要耗费大量时间调试时,使用继承特别有用因为可以重用已经经过测试的安全且高质的代码,不需要重新编写、测试。
1.3 在派生类中可以做的事情
#派生类不能继承基类中的private(私有的)成员,可以继承基类中的public(公共的)和protected(受保护的)成员,并且不受包范围的限制。对于继承的成员,派生类可以隐藏它们或者定义新成员补充它们。
具体说明如下:
(1) 继承的成员变量可以像其他成员变量一样被使用。
(2) “隐藏”基类中的成员变量,是指在派生类中声明一个与基类中同名的成员变量,但此方法不推荐使用。
(3) 可以在派生类中增加基类中没有的成员变量。
(4) 从基类继承的方法可以直接使用。
(5) “方法重写”(或“方法覆盖”)是指可以在派生类中编写一个与基类相同签名的实例方法。
(6) “隐藏”基类中的方法是指在派生类中编写一个与基类有相同签名的静态方法
(7) 可以在派生类中增加基类中没有的方法。
(8) 可以通过隐式的或者使用关键字super来实现在派生类构造方法中编写一个调用基类的构造方法。

(从基础背景开始学起,坚持,是一件不容易的事情。)

文章推荐
AI基础学习第二阶段笔记:从0开始学Java“搭建Java程序开发环境”
AI基础学习第二阶段笔记:从0开始学Java“开发第一个Java应用程序”
请在微信客户端打开
文 | Lisa Notes
Lisa Notes |一个Lisa’s notes:生活、工作、学习中那些事儿,感悟自我成长,随心随笔杂谈。微信搜索「Lisa Notes」(ID:Lisa-notes),查看更多信息,原创小说,PPT干货分享。

长按♥一键关注
特别声明
本文为自媒体、作者等在微信公众号上传并发布,仅代表作者观点,不代表微信公众号的观点或立场,微信公众号仅提供信息发布平台,最终解释权归本人所有。合作请联系13698281600@163.com。
全世界只有不到0.03%的人
关注小SA
你真是个特别的人
快戳我!快戳我!快戳我!㊋㊋㊋