在初期,很多人对于java中一些定义的认识比较模糊,今天我就来详细讲一讲我所认识的封装和继承。

1、封装

1.1)概念:将类的某些信息隐藏在内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。

1.2)好处:只能通过规定的方法访问数据;隐藏类的实例细节,方便修改和实现。

1.3)封装的实现步骤

注意:对封装的属性不一定必须通过get/set方法,其他方法也可以对封装的属性进行操作。当然最好使用get/set方法,这样比较标准。

1.4)访问修饰符

访问修饰符可以限制类中成员的被访问范围,可以有效的保护隐私数据。

1.5)java中的内部类

  • 内部类(Inner Class)就是定义在另外一个类里面的内。与之对应,包含内部类的类被称为外部类。
  • 内部类不常用,但却有其特殊的作用:
  • a、内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类。
  • b、内部类的方法可以直接访问外部类的所有数据,包括私有的数据。
  • c、内部类所实现的功能使用外部类同样可以实现,只是有时使用内部类更方便。
  • 内部类分为:成员内部类、静态内部类、方法内部类、匿名内部类

2、继承

2.1)概念:继承是类与类的一种关系,是一种“is a”的关系。比如“狗”继承“动物”,这里动物类是狗类的父类或者基类,狗类是动物类的子类或者派生类。如下图所示:

注:java中的集成是单继承,一个类只有一个父亲,但一个父亲可以有多个子类。

2.2)好处:子类拥有父类的所有属性和方法(除了private修饰的属性不行)从而实现了代码的复用。

2.3)语法规则:只要在子类后面加上extends关键字再加上想要继承的父类就可以了

2.4)方法的重写

子类如果对继承的父类中一些方法不满意,可以自己重写编写该方法,这种方式就叫做方法的重写,当调用方法时会优先调用子类的方法。

需要注意:方法名相同、参数列表相同,方法体不同

2.5)继承的初始化顺序

  • 初始化父类再初始化子类
  • 先执行初始化对象中属性,再执行构造方法中的初始化
  • 基于上面两点,我们就知道实例化一个子类,java程序的执行顺序是:
  • 父类对象属性初始化---->父类对象构造方法---->子类对象属性初始化--->子类对象构造方法

2.6)final关键字

使用final关键字做标识有“最终”的含义。final修饰类,则该类不能被继承;final修饰方法,则该方法不能被重写;final修饰属性,则该类的该属性不会进行隐式的初始化,所以该final 属性的初始化属性必须有值,或在构造方法中赋值(但只能选其一,且必须选其一,因为没有默认值),且初始化之后就不能改了,只能赋值一次。

2.7)super关键字

在对象的内部使用,可以代表父类对象。

访问父类的属性super.*;访问父类方法super.*()

super的应用:首先我们知道子类的构造的过程当中必须调用父类的构造方法。其实这个过程已经隐式地使用了我们的super关键字。这是因为如果子类的构造方法中没有显示调用父类的构造方法,则系统默认调用父类无参的构造方法。那么如果自己用super关键字在子类里调用父类的构造方法,则必须在子类的构造方法中的第一行。要注意的是:如果子类构造方法中既没有显示调用父类的构造方法,而父类没有无参的构造方法,则编译出错。(补充说明,虽然没有显示声明父类的无参的构造方法,系统会自动默认生成一个无参构造方法,但是,如果你声明了一个有参的构造方法,而没有声明无参的构造方法,这时系统不会动默认生成一个无参构造方法,此时称为父类有没有无参的构造方法。)

2.8)Object类

Object类是所有类的父类,如果一个类没有使用extends关键字明确标识继承另一个类,那么这个类默认继承Object类。Object里面主要有两个类:toString()、equals()

中继承父类实现父类方法的快捷键_关于封装、继承相关推荐

  1. Java继承_Hachi君浅聊Java三大特性之 封装 继承 多态

    Hello,大家好~我是你们的Hachi君,一个来自某学院的资深java小白.最近利用暑假的时间,修得满腔java语言学习心得.今天小宇宙终于要爆发了,决定在知乎上来一场根本停不下来的Hachi君个人 ...

  2. IDEA 中添加 getter、setter 方法的快捷键:Alt+Insert

    刚开始接触IDEA,用到传说中强大的快捷键:Alt + insert 但我的笔记本死活无法使用,很无奈. 网上很多方法都局限于下面的(3)(4),但就是不管用,最后终于发现是键盘问题. (1)如果自己 ...

  3. 进入方法内快捷键_肝货|驱动安装流程驱动amp;快捷键设置(一)

    | 这里是博学多识可爱无敌的课代表可可嘚吧嘚 笔记疯狂输出时间 某个灵机一动(摸鱼摸虾)的下午 突然发现(摸鱼有理了~) 写了这么多的教程我竟然遗漏了一个最最最最最······重要的手绘板/屏的驱动安 ...

  4. 关于“继承, 子类拥有父类非private的属性和方法“

    我们以前经常看到这么一句话: "继承,  子类拥有父类非 private 的属性和方法."; 但是我们又会经常看到这样的代码 父类: public class People {pr ...

  5. 【面向对象编程】(4) 类的继承,重构父类中的方法

    各位同学好,今天和大家分享一下面向对象编程中,类的三大特征之继承.主要介绍:子类继承父类的基本方法:重写父类的类方法:重构父类的初始化方法:super() 方法.本节主要是单继承,多继承在下一节中介绍 ...

  6. 什么是python中子类父类_零基础入门:python中子类继承父类的__init__方法实例

    前言: 今天为大家带来的内容是零基础入门:python中子类继承父类的__init__方法实例!具有不错的参考意义,希望在此能够帮助到各位!(喜欢的话记得点赞转发关注不迷路哦) 使用Python写过面 ...

  7. 子类怎么继承父类方法中的变量_JavaOOP_04 封装 继承

    一.封装 概念:隐藏程序内部的具体实现细节,对外提供接口,从而提高程序的安全性. 高内聚,低耦合. 使用封装的步骤: 1.属性私有化,使用private访问修饰符进行修饰 2.对外提供 setter/ ...

  8. python在多继承中子类调用某个父类的同名方法之 super讲解(mro机制)***

    目录 2.   钻石继承遇到的难题 3.   针对钻石问题各语言的解决方法 3.1. C++ 3.2. Java 3.3. Ruby 3.4. Python 4.   super的内核:mro 5.  ...

  9. python中的继承的初始化_python中子类继承父类的__init__方法实例

    前言 使用Python写过面向对象的代码的同学,可能对__init__方法已经非常熟悉了,__init__方法在类的一个对象被建立时,马上运行.这个方法可以用来对你的对象做一些你希望的 初始化 . 注 ...

最新文章

  1. Flask之请求钩子
  2. ai怎么画循环曲线,怎么用 Adobe Illustrator 画出曲率连续的曲线?
  3. 深度学习网络调试技巧
  4. Python连接DM8数据库
  5. mysql实战38 | 都说InnoDB好,那还要不要使用Memory引擎?
  6. atitit.atiOrmStoreService 框架的原理与设计 part1  概述与新特性
  7. JavaScript--动态添加元素
  8. [Informix] unload load
  9. CentOS 7.x下部署和配置zabbix 3.2.x监控工具
  10. springboot+自定义注解实现灵活的切面配置
  11. Linux shell脚本中判断变量文件目录:权限、是否存在、空值、相等
  12. (day05)剑指 Offer 11. 旋转数组的最小数字-(二分法)
  13. 面试题:逗号表达式运用
  14. 指针式仪表自动识别和读数
  15. GCD中dispatch_apply函数的使用方法
  16. 用php做滚动,用PHP+java实现自动新闻滚动窗口
  17. android linux 休眠 深度睡眠 查看 方法 调试【转】
  18. 网络版AIS接收机R400N
  19. 使用mobile-detect.js获取手机型号和系统
  20. linux命令行连接蓝牙音箱,Linux: Ubuntu蓝牙音频设备可以配对但没声音的临时解决方案【转】...

热门文章

  1. python2.7安装matplotlib_Ubuntu-Python2.7安装 scipy,numpy,matplotlib 和pip
  2. 王小云:“设谜”与“猜谜”,实现中国“密码梦”
  3. 77岁“核弹老人”,前后半生都令人动容!
  4. 不会演讲的你,一开口就输了
  5. 太阳系其实是被造出来的!来,用视觉聆听宇宙之音!
  6. html页面返回原理,浏览器输入URL到界面显示(HTML渲染)发生了什么?
  7. Android无法优化应用,Android应用优化总结
  8. redis的多路复用是什么鬼
  9. 【转载】RocketMQ优秀文章
  10. Quick BI V4.0功能“炸弹”来袭,重磅推出即席分析、模板市场、企业微信免密登录等强势功能