首页 类库下载 java类库 Java基础学习-- 继承 的简单总结

Java基础学习-- 继承 的简单总结

Oct 08, 2016 pm 01:43 PM

Java基础学习-- 继承 的简单总结


代码参考:Java基础学习小记--多态

 

为什么要引入继承?

  还是做一个媒体库,里面可以放CD,可以放DVD。如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD的函数,单独做一个添加DVD的函数,如果还要往这个媒体库里添加其他的媒体类,还要再创建另一个添加函数。我们说这样的代码不具备可扩展性。另外,CD和DVD有很多相似之处,它们的成员变量里都有标题,播放时长,评论,等等,我们称这样的程序存在大量的代码复制,代码复制是代码不良的表现。所以我们可以创建一个它们的父类,把他们相同的成员变量都添加进父类,而它们都可以继承得到这些变量,在添加到媒体库的时候仅仅需要创建一个添加它们父类的这么一个函数,它们便也可添加进去。

子类从父类那里继承得到了什么?

  继承得到了父类所有的东西,包括成员变量和成员函数。但不见得能够访问父类的所有东西,这样看父类所继承下来的成员变量和成员函数的访问属性。如果父类里有成员变量是private的,那么子类是不可以直接访问的。但是,private只有父类自己可以访问,所以我们可以在子类里通过调用父类的public函数来间接的访问这些成员变量。

  另外,子类除了有从父类那里继承得到的之外,还可以有自己的独有的成员变量和函数,写在自己的类里面。

访问属性

访问属性    含义    

public    对所有人开放    

private    只有自己可以访问    

protected    只有自己、子类和包内其他类可以访问    

缺省    只有自己和包内其他类可以访问    

 

super();

在父类的构造函数中构造过的成员变量,子类的构造函数的参数表里要写明,并且用super()将这些在父类那里构造过的成员变量从父类那里取过来。实例代码请看多态那篇博文。

super();里面的参数会决定调用父类里的哪个构造器,super();里面的参数和所调用的构造器的参数是相同的。

缺省模式下(如果子类构造器里没有super();),会默认调用父类里没有参数的构造器,如果父类里没有这样的构造器,eclipse会报错。

覆盖(override)

  当子类和父类里有相同名称的函数时,子类里的函数会去覆盖(override)从父类那里继承来的那个同名函数,于是从父类来的那个函数就会隐藏起来不起作用。但是如果想在子类中调用父类中的那个同名函数,应写成 super.函数名();  。

<br/>
登录后复制


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24