网站首页 > 精选教程 正文
面向对象是Java学习中的一个重要部分,继承作为Java面向对象编程技术的一块基石,是我们学习面向对象的重要基础铺垫,今天小编将为大家带来大数据编程入门:Java继承这篇文章。
一、继承的概念
继承作为Java面向对象编程技术的一块基石,能够允许创建分等级层次的类。
继承就是子类或者父类的特征和行为,使得子类不仅具有父类的实例域和方法,还从父类继承方法,具有与父类相同的行为。
1、生活中的继承
在上图中可以看到,兔子和羊属于食草动物类,狮子和豹子属于食肉动物类,而它们又都属于动物类。所以在继承中,父类更通用,子类更具体。
虽然食草动物和食肉动物都属于动物类,但是两者的属性和行为上都有着不同点,所以子类会具有父类的一般特性也会具有自身的特性。
2、类的继承格式
在Java中,可以通过extends关键字申明一个类是从另一个类继承而来的,一般形式如下所示:
class 父类 {
}
class 子类 extends 父类 {
}
3、为什么需要继承
下面我们将通过实例来说明这个需求。
开发动物类,其中动物分别为企鹅和老鼠,要求如下所示:
企鹅:属性(姓名,id),方法(吃,睡,自我介绍)
老鼠:属性(姓名,id),方法(吃,睡,自我介绍)
企鹅类:
老鼠类:
从上面两个实例可以看出两段代码存在重复的内容,这样就导致代码量大而臃肿,维护性不高,所以需要从根本上解决这个问题,这个时候就需要用到继承了,从两段代码中提取相似部分组成一个父类:
Animal类就可以作为一个父类,接下来看看企鹅类和老鼠类继承过后的代码。
企鹅类:
老鼠类:
4、继承类型
需要注意的是,Java不支持多重继承,但是支持多重继承。
二、继承的特性
a.子类具有非私有父类的属性和方法。
b.子类可以有自己的属性和方法,也就是说,子类可以扩展父类。
c.子类可以用自己的方式实现父类的方法。
d.Java继承是单继承,但也可以是多继承。单一继承意味着一个子类只能继承一个父类。多重继承意味着,例如,类B继承类A,类C继承类B。所以根据这个关系,B类是C类的父类,A类是B类的父类。这是Java继承不同于C++继承的一个特性。
e.它改善了类之间的耦合(继承的缺点是,耦合越高,代码之间的连接越紧密,代码独立性越差)。
三、继承关键字
继承可以通过使用关键字extends和implements来实现,所有类都是从java.lang.Object继承的。当一个类没有两个继承的关键字时,它将默认继承对象(这个类在java.lang包中,因此不需要导入)祖先类。
1、extends关键字
在Java中,类继承是单个继承,即一个子类只能有一个父类,因此extends只能继承一个类。
2、implements关键字
使用implements关键字可以变相使java具有多重继承的特性。当使用范围是类继承接口时,可以同时继承多个接口(接口之间用逗号分隔)。
3、super与this关键字
super关键字:我们可以使用Super关键字访问父类的成员来引用当前对象的父类。
This关键词:对自己的引用。
运行结果:
4、final关键字
final关键字声明类可以将该类定义为final类,不能继承;或用于修改不能由子类重写的方法:
a.声明类:
final class 类名 {//类体}
b.声明方法:
修饰符(public/private/default/protected) final 返回值类型 方法名(){//方法体}
注意:实例变量也可以定义为final,并且不能修改定义为final的变量。声明为final类的方法会自动声明为final,但实例变量不是final
四、构造器
子类不继承父类的构造函数(构造函数或构造函数),它只调用(隐式或显式)。如果父类的构造器有参数,则必须通过子类的构造器中的super关键字显式调用父类的构造器,并提供适当的参数列表。
如果父构造函数没有参数,则不必使用super关键字调用子类构造器的父类构造器,系统会自动调用父类的无参数构造器。
实例:
运行结果:
以上就是关于大数据编程入门:Java继承的全部内容了,希望这篇文章能够帮助到大家~
- 上一篇: java 泛型类的继承关系和转型问题
- 下一篇: Java面向对象---继承
猜你喜欢
- 2024-11-27 JAVA面向对象的三大特征——继承
- 2024-11-27 JAVA中的注解可以继承吗?
- 2024-11-27 学长带你学习java第三课——继承
- 2024-11-27 java技术专家带你深入java核心技术:反射+继承设计技巧+枚举类
- 2024-11-27 【编程】Java中的继承和多态,你了解多少?
- 2024-11-27 Java开发:java面向对象思想之继承
- 2024-11-27 用最通俗易懂的例子讲明白继承和组合的本质区别
- 2024-11-27 java继承的概念是什么?
- 2024-11-27 java基础-3-继承
- 2024-11-27 Java小白成长记:Java如何实现封装、继承、解析解构
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)