Java基础一—面向对象三大特性

写在最前

本系列为个人对BAT大厂面试题与全栈知识体系结合的简化梳理及本人在日常学习中一些知识的整理(包括但不限于书本、他人博客、微信公众号等渠道),仅为个人总结学习与整理知识框架。供读者参考学习,共同进步。

隐藏对象的属性和实现细节,仅对外提供公共访问方式

  • public
    紧随其后的元素对任何人都是可用的
  • private
    除类型创建者和类型的内部方法之外的任何人都不能访问的元素
  • protected
    继承的类可以访问protected成员,但是不能访问private成员

Java还有一种默认的访问权限(default),当没有使用前面提到的任何访问指定词时,它将发挥作用。
这种权限通常被称为包访问权限,因为在这种权限下,类可以访问在同一个包中的其他类的成员,但是在包之外,这些成员如同指定了private一样。

继承实现了 IS-A 关系,子类可以继承自父类,从而获得父类非private的属性和方法。
继承是多态的前提

多态是指允许不同子类型的对象对同一行为作出不同的响应。
多态分为编译时多态和运行时多态:

编译时多态主要指方法的重载(overload)
运行时多态指程序中定义的对象引用所指向的具体类型在运行期间才确定

运行时多态有三个条件:

  • 继承
  • 覆盖(重写)(override)
  • 向上转型

把对某个对象引用视为对其基类类型的引用的做法被称作 向上转型

  • override
    重写,运行时的多态性。参数列表必须相同,返回值小于等于父类,抛出的异常小于等于父类,访问修饰符大于等于父类
  • overload
    重载,在同一个类中,出现了多个同名的方法。编译时的多态性,参数类型不同,个数不同,顺序不同, *与方法返回值和访问修饰符无关

Original: https://www.cnblogs.com/winter0730/p/15311772.html
Author: cos晓风残月
Title: Java基础一—面向对象三大特性

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/576274/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Centos MySQL 安装手册(超简洁)

    EL8 系统会遇到 yum报404: Errors during downloading metadata for repository ‘appstream’:原因是2022年1…

    数据库 2023年6月9日
    0100
  • 记录不存在则插入,存在则更新 → MySQL 的实现方式有哪些?

    开心一刻 今天,爸爸、我和女儿一起吃了晚饭,我们每人都吃了一只鸡腿。 [En] Today, my father, me and my daughter had dinner to…

    数据库 2023年5月24日
    095
  • iptables快速入门

    iptables简介 在生产实践过程中,为了保证生产安全,通常需要进行数据加密,例如通过网络层面上将应用隔离成内网和公网应用,内网再分成生产、测试、开发、DMZ等区域,然后进行不同…

    数据库 2023年6月14日
    093
  • Angel工作室ASP.NET(AngelExam)开源驾校考试系统正式发布

    一、Angel工作室ASP.NET(AngelExam)开源驾校考试系统简介 Angel工作室ASP.NET(AngelExam)驾校考试系统是基于asp.net mvc4.5(C…

    数据库 2023年6月14日
    070
  • Spring中常见的注解

    1.组件注解 @Controller @Service @Repository @Component —标注一个类为Spring容器的Bean @Configratio…

    数据库 2023年6月11日
    074
  • Node安装与卸载命令汇总

    nvm(MAC管理node版本) 安装最新稳定版node: nvm install stable 安装指定版本: nvm install <version></v…

    数据库 2023年6月9日
    057
  • 工程师成长阶段感悟

    从 2013 年陆续开始做软件研发工作, 去过不少公司, 做过一些类型项目, 桌面开发, web 开发, 手游开发, 端游开发, 棋牌, 视频云服务, 电商. 刚毕业那会在国企, …

    数据库 2023年6月9日
    083
  • Git命令列表–git-config

    git config 查看、编辑Git的配置文件 配置文件的范围和语法 $ git config usage: it config [] Config file location …

    数据库 2023年6月11日
    075
  • 常见的位操作及其应用

    概述 与、或、异或、取反或者移位运算这几种基本的位操作想必诸位读者并不陌生,如果我们能在某些合适场景下使用位运算,有些时候可以大大提高算法的效率。但由于本身位运算太过灵活,甚至某些…

    数据库 2023年6月11日
    071
  • 享受时间 拥抱 Linux

    生活上小闲心 用 游戏 影音 音乐 可以尝试 Window or Macos. 初期代码生涯推荐全面拥抱 Linux , 耐下心少学点, 多享受光 邵雍· 《清夜吟》 月到天心处,…

    数据库 2023年6月9日
    073
  • Vue插件

    Vue插件 插件作用 插件通常用来为 Vue 添加全局功能 例如:1、添加全局资源:指令/过滤器/过渡等。如 vue-touch2、通过全局混入来添加一些组件选项。3、添加 Vue…

    数据库 2023年6月11日
    064
  • MyBatisPlus代码生成示例

    一、依赖 com.baomidou mybatis-plus-generator 3.5.3 org.projectlombok lombok 1.18.16 compile or…

    数据库 2023年6月11日
    072
  • Jmeter环境变量配置你不得不知道的事情

    在安装Jmeter的过程中大家肯定需要配置环境,但是为什么要配置JDK的环境变量呢?大家有没有好奇过,有没有仔细去像一下呢,其实在安装Jmeter前,大家应该都知道Jmeter是我…

    数据库 2023年6月6日
    076
  • SpringBoot整合Redis和SpringBoot(SpringCache)整合Redis

    参考博客: https://blog.csdn.net/lingerlan510/article/details/121906813 https://blog.csdn.net/u…

    数据库 2023年6月14日
    098
  • Mysql数据库存取原理及性能优化

    一、Mysql的系统架构图 二、Mysql存储引擎 Mysql中的数据是通过一定的方式存储在文件或者内存中的,任何方式都有不同的存储、查找和更新机制,这意味着选择不同的方式对于数据…

    数据库 2023年6月14日
    092
  • 【运维】– Docker基础必知必会(1)

    1.Docker简介 Docker的出现简单地说就是为了解决运行环境和软件配置相关的不一致性问题,采用Docker镜像的方式将软件所需要的运行环境打包。通过Docker build…

    数据库 2023年6月6日
    093
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球