JavaBasic_07
面向对象三大特征
1.封装
封装是一种信息隐藏技术
a.是指数据和基于数据的操作封装在一起,数据被保护在内部(类的内部(对象))
b.系统的其他部分只有通过在数据外面的被授权的操作才能进行交互(没有授权的操作就不能被访问 隐藏)
隐藏的好处:
1.可以控制自己,哪些东西对外部可见,哪些东西对外部隐藏(访问控制)
2.通过隐藏,我们只让外部,访问到必须对外部可见的部分,这样的好处是,在修改代码,就可以随意修改,而不需要考虑,修改完代码后,对代码使用者的影响。
2.继承
不劳而获,什么都不敢,就已经得到一些东西了 (代码复用)
- 使程序结构清晰,减少了编码和维护的工作量,子类可以使用父类所提供的方法,实现了代码的复用
class WangdaoStudent extends Students
WangdaoStudent:是Students子类
Students: 被WangdaoStudent继承, Students是WangdaoStudent的父类
3.多态
用同一函数调用实现不同的操作的方法——同一方法,在不同的情况下,表现出不同的行为。
方式1:同一类中参数不同的同名方法(重载)
1.编译时多态(方法重载):
任意类的的方法名,在不同的参数列表的情况下,产生不同的行为 (编译时多态)
重载:不是子类对父类同名方法的重新定义,而是类对自身已有的同名方法的重新定义。重载方法的参数必须不同,或者是参数个数不同,或者是参数类型不同
方法签名: 声明方法的方法头中方法名中加上方法的参数列表 方法名+参数列表
1.可以唯一确定一个方法
2.类体中不能声明签名完全相同的两个方法
3.当两个方法具有相同的方法名,但有不同数量或类型的参数,而导致不同的方法签名时,称这两个方法为互相重载。
System.out.println(“earth”);
System.out.println(100);
system.out.println(new Body(“Sun”));
2.运行时多态:父类和子类之间的同名方法(发生的范围,不是任意类,只有有继承关系的类中,才有可能发生运行时多态)
运行时多态:只有在jvm运行,jvm才会知道执行的父类中的同类方法还是子类中的同名方法。
JavaBasic_07的更多相关文章
随机推荐
- Oracle12c CDB架构图
- Kali配置教程
1.配置软件源 所有操作没有说明,都是以root身份执行. 打开一个终端执行: cat >> /etc/apt/sources.list <<EOF deb http://mi ...
- JS 控制只能输入数字并且最多允许两位小数点
<html lang="en"> <head> <meta charset="UTF-8"> <title>JS ...
- 【Jmeter基础知识】Jmeter响应断言和断言结果
一.Jmeter创建一个响应断言 1.步骤:添加--断言--响应断,进入响应断言页面 2.断言内容:可以采用直接去搜索某些文本信息,或者可以去断言某个变量,如图 二.Jmeter创建一个断言结果 1. ...
- day2编程语言的两大分类
编程的语言的发展经历了 机器语言 汇编语言 高级语言 高级语言更贴近人类的语言,但是必须被翻译成计算机能读懂的二进制后,才能够被执行,按照翻译方式分为 1 编译型(需要编译器,相当于用谷歌翻译); ...
- mybatis 无法自动补全,没有获得dtd文件
由于网络原因,eclipse无法下载到http://mybatis.org/dtd/mybatis-3-mapper.dtd,导致eclipse的编辑器无法自动补全标签. 解决办法:将dtd文件下载到 ...
- 【转载】Maven中的BOM概念
1.概述 1.1.什么是 BOM? BOM stands for Bill Of Materials. A BOM is a special kind of POM that is used to c ...
- Linux文件系统中的inode节点详细介绍
这篇文章主要介绍了Linux文件系统中的inode节点,详细讲解了inode是什么.inode包含的信息.inode号码的相关资料等,需要的朋友可以参考下 一.inode是什么? 理解inode,要从 ...
- easyui再学习的一部分代码
<%-- Created by IntelliJ IDEA. User: zhen Date: // Time: : To change this template use File | Set ...
- 进阶ES6 点滴认知
1.let--不允许重复声明 根据http://es6.ruanyifeng.com/#docs/let 的例子,我竟然 报格式错误 说实话,我也没见过函数这样的写法......然后我就随意加了函数名 ...