JAVA回顾:封装,继承,多态
目录
- 知识点回顾
- 封装
- 继承
- super注意点:
- Vs this:
- 前提:
- 构造方法
- 多态
- 总结
知识点回顾
封装
封装(有时称为数据隐藏)是与对象有关的一个重要概念。从形式上来看,封装不过是将数据和行为组合在一个包中,并对对象的使用者隐藏了数据的实现方式。对象中的数据称为实例域,操作数据的过程称为方法。对于每个特定的类实例(对象)都有一组特定的实例域值。这些值的集合就是这个对象的当前状态。无论何时,只要向对象发送一个消息,它的状态就有可能改变。
实现封装的关键在于绝对不能让类中的方法直接地访问其他类的实例域。程序仅通过对象的方法与对象数据进行交互。封装给了黑盒特征,这是提高重用性和可靠性的关键。这意为着一个类可以全面地改变存储数据的方式,只要依旧使用同样的方法操作数据,其他对象就不会知道或介意所发生的变化。----《Java 核心 卷I》
提高程序的安全性,保护数据
隐藏代码的实现细节
统一接口
系统可维护增加了
继承
子类继承了父类,就会拥有父类的全部方法
私有的东西无法被继承
调用父类的构造器,必须要在子类构造器的第一行
super注意点:
- super调用父类的构造方法,必须在构造方法的第一个
- super必须只能出现在子类的方法或者构造方法中!
- super和this不能同时调用构造方法
Vs this:
代表的对象不同:
- this:调用本身这个对象
- super:代表父类对象的引用
前提:
- this: 没有继承也可以使用
- super: 只能在继承条件才可以使用
构造方法
- this(): 本类的构造方法
- super():父类的构造
重写都是方法的重写,和属性无关
方法的调用只和左边,和定义的数据类型有关
重写只和非静态方法有关
多态
一个对象的实际类型是确定的
可以指向的引用类型就不是确定的: 比如可以父类的引用指向子类, Object类指向子类
子类重写了父类的方法,就执行子类的方法
子类可以调用的方法是自己的或者继承父类的, 父类可以指向子类,但是不能调用子类独有的方法
高类型转低类型要强转
总结
本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注我们的更多内容!
相关推荐
-
Java中的封装、继承和多态,你真的都懂了吗
封装 所谓的封装就是把类的属性和方法使用private修饰,不允许类的调用者直接访问,我们定义如下一个类,可以看到所有的成员变量和成员方法都使用private修饰了,我们现在来使用一下这个类. 当我们使用的时候编译器给出了下面这样的报错. 告诉我们说是private访问控制,那么这是什么意思呢?我们来看看另外一张图,那么这张图代表这什么呢?在看这张图之前,我们先来看看四者都提到的包,那么包又是什么呢,包可以简单理解为一个文件夹,把类放到放到包里面,也就相当于是专门的文件夹里面,这不是我们说的重点
-
详解java封装继承多态
面向对象编程(Object Oriented Programming)有三大特性:封装.继承.多态.在这里,和大家一起加深对三者的理解. 封装 封装可以拆开理解,装,是把数据和方法放进了类里:封,把装进去的数据和成员方法加上访问权限.对于外界,内部细节是透明的,暴露给外面的是它的访问方法. 继承 继承,是为了重用父类代码.两个类若具有is a的关系就可以用extends.另外,继承也为实现多态做了铺垫. 多态 程序中定义的引用变量(java有两大数据类型,内部数据类型和引用数据类型)所指向的具体
-
详细理解JAVA面向对象的封装,继承,多态,抽象
目录 类和对象的使用(面向对象思想落地的实现): 子类对象实例化的全过程 1.从结果上看:(继承性) 2.从过程上来看: 1.封装性 2.继承性 继承性的好处: 3.多态性 虚拟方法调用 4.抽象性 1.抽象类的特点: 2.天生的父类:抽象类 3.抽象方法 总结 创建类的对象 = 类的实例化 = 实例化类 类和对象的使用(面向对象思想落地的实现): 1.创建类,设计类的成员 2.创建类的对象 3.通过"对象.属性"或"对象.方法"调用对象的结构 如果创建了一个类的多
-
Java面向对象编程(封装/继承/多态)实例解析
本文主要介绍了面向对象的三大特征实例解析,下面看看具体内容. 封装 封装一个Teacher和Student类 package com.hz.test; public class Teacher { private String name; private String majorDirection; private String teachCourse; private int teachAge; public Teacher() { super(); } public Teacher(Stri
-
新手初学Java继承、封装与多态
目录 面向对象的三大核心特性 封装 继承 单继承 继承的优缺点 super关键字 super调用父类构造方法 super访问父类成员 super和this的区别 多态 instanceof关键字 方法重载 方法重写 抽象类 接口 定义接口 实现接口 总结 面向对象的三大核心特性 面向对象开发模式更有利于人们开拓思维,在具体的开发过程中便于程序的划分,方便程序员分工合作,提高开发效率.面向对象程序设计有以下优点. 可重用性:代码重复使用,减少代码量,提高开发效率.下面介绍的面向对象的三大核心特性(
-
JAVA回顾:封装,继承,多态
目录 知识点回顾 封装 继承 super注意点: Vs this: 前提: 构造方法 多态 总结 知识点回顾 封装 封装(有时称为数据隐藏)是与对象有关的一个重要概念.从形式上来看,封装不过是将数据和行为组合在一个包中,并对对象的使用者隐藏了数据的实现方式.对象中的数据称为实例域,操作数据的过程称为方法.对于每个特定的类实例(对象)都有一组特定的实例域值.这些值的集合就是这个对象的当前状态.无论何时,只要向对象发送一个消息,它的状态就有可能改变. 实现封装的关键在于绝对不能让类中的方法直接地访问
-
JavaScript使用prototype原型实现的封装继承多态示例
本文实例讲述了JavaScript使用prototype原型实现的封装继承多态.分享给大家供大家参考,具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml&
-
Java面向对象基础知识之封装,继承,多态和抽象
目录 一.封装 二.继承 三.多态 四.抽象 总结 一.封装 封装:是面向对象方法的重要原则,就是把对象的属性和行为(数据)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节,就是把不想告诉或者不该告诉别人的东西隐藏起来,把可以告诉别人的公开,别人只能用我提供的功能实现需求,而不知道是如何实现的.增加安全性 public class Person { private String name; private int gender; private int age; public String
-
Java OOP三大特征之封装继承与多态详解
目录 封装 继承 多态 OOP语言的三大特征即:面向对象的三个比较重要的思想 封装 官话:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口进行交互 通俗讲,不让类外看到实现的细节,通过技术手段对这些细节包装一个外壳,同时提供几个公开的接口,让你进行交互即可(例如:手机,内部的具体零件,不会让你观察到,使用者只能看到外壳,通过外壳的显示屏,充电口进行交互)简而言之——套壳屏蔽细节 实际上通过private来实现 例如: 继承 面向对象的思想中提出了继承的概念,专门用来进
-
C语言也有封装,继承和多态你知道吗
目录 封装 继承 多态 函数的指针 通过函数的指针实现多态 总结 我们知道封装.继承.多态是面向对象的三大特性,我们也知道C语言是面向过程的语言,那么可不可以在面向过程的语言中用面向对象的思想编程呢.现在我们就一起看看用C语言如何实现封装.继承.多态. 封装 所谓封装就是把实现的细节隐藏起来,外部只能通过相关的函数对一个类进行操作,一呢是方便代码的复用,二也可以有效的保证代码的安全性.那么我们看看Redis源码中对于双向链表的一个设计和实现,是不是就是传说中的封装呢? typedef struc
-
Java面向对象编程之继承和多态以及包的解析与使用范例
目录 1.继承 1.1继承的基本使用 1.2 protected 关键字 1.3 final 关键字 2.多态 2.1向上转型 2.2动态绑定 2.3方法重写 2.4向下转型 2.5super 关键字 2.5.1 super 关键字的基本用法 2.5.2 this和super的区别 3.包的使用 3.1导入包中的类 3.2常见系统包 1.继承 为什么要有继承? 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中, 那么多个类无需再定义这些属性和行为,只要继承那个类即可. 此处的多个类称为
随机推荐
- 如何确保JavaScript的执行顺序 之实战篇
- 突破Win 2003系统的种种限制
- Java案例之随机验证码功能实现实例
- IOS 单击手势的添加实现代码
- iOS从App跳转至系统设置菜单各功能项的编写方法讲解
- Asp.Net URL重写的具体实现
- javascript中关于&& 和 || 表达式的小技巧分享
- ionic隐藏tabs的方法
- 引用全局程序集缓存内的程序集的方法
- .NET实现XML与DataTable互转的实例代码
- asp 判断上传文件中是否存在危险代码
- 利用docker搭建php7和nginx运行环境全过程(官方镜像)
- linux二进制通用包安装mysql5.6.20教程
- Android实现自定义圆角对话框Dialog的示例代码
- Go语言中关闭带缓冲区的频道实例分析
- Jquery中$.ajax()方法参数详解
- Vue.js第四天学习笔记
- C#实现根据银行卡卡号判断银行名
- nodejs实现爬取网站图片功能
- python正则实现计算器功能