一、java的三大特性

1、继承:继承是为了重用父类代码

2、多态:程序中 定义的引用变量 所指向的具体类型和 通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定

3、封装:隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。

二、细说三大特性

1、封装:

从上面封装的定义可以看出,封装是为了“隐藏”一些东西,那么隐藏的是什么呢?又该如何隐藏呢?

(1)隐藏的是什么?-->细节

所谓细节,即实现的细节。

(2)如何隐藏呢?(getter and setter)

a、成员变量的隐藏:将成员变量设置为private,不允许从外部直接操作成员变量;

b、方法的暴露:既然不允许从外部直接操作成员变量,那么就需要提供对外的方法,可以让在其他地方修改成员变量。

那么封装的好处是什么呢?

(1)隐藏实现细节,“外人”无需了解内部的实现。

(2)“外人”只能通过我们提供的对外方法进行变量的操作,我们可以在对外方法中做特定的检查和限制。

(3)对于内部的修改,“外人”无感知。

2、继承:

继承是在已有的类的基础上,建立新类的技术手段;新类可以使用父类中已有的方法或功能,当然新类也可以在父类的基础上进行功能的扩展。(is -a)

通过继承,可以非常方便的复用之前的代码;大大提供开发效率。

继承的具体特性:

(1)子类拥有父类非private的方法和变量使用权。

(2)子类可以拥有自己的方法和变量,即在父类的基础上进行扩展。

(3)子类可以用自己的方式实现父类已有的方法(重写)

这里说明一下重写和重载的区别:

重写:重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写

重载:重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。

(4)向上转型:子类对象指向父类引用。

3、多态:

什么是多态呢?--同一个行为具有多种不同表现形式或者能力。

继承(重写)、接口、重载是实现多态的三种方式:

(1)继承的实现

a、子类必须继承父类

b、必须有重写

c、父类引用指向子类对象(向上转型)

(2)接口的实现

a、多个类均实现了某个接口

b、各个类实现自己的细节

c、接口引用指向子类对象

(3)重载

其实重载是调用了“不同”的方法(参数不同或者返回值不同)

注:重载在编译器就会根据参数的类型或者返回值来决定重载方法的版本;而重写在运行期才能决定接收者的实际类型。

java有什么特性?相关推荐

  1. java11 是长期支持_这里有你不得不了解的Java 11版本特性说明

    「MoreThanJava」 宣扬的是 「学习,不止 CODE」,本系列 Java 基础教程是自己在结合各方面的知识之后,对 Java 基础的一个总回顾,旨在 「帮助新朋友快速高质量的学习」. 当然 ...

  2. Java这个高级特性-泛型,很多人还没用过!

    点击关注公众号,Java干货及时送达 泛型是 Java 的高级特性之一,如果想写出优雅而高扩展性的代码,或是想读得懂一些优秀的源码,泛型是绕不开的槛.本文介绍了什么是泛型.类型擦除的概念及其实现,最后 ...

  3. Java这个高级特性,很多人还没用过!

    点击关注公众号,Java干货及时送达 泛型是 Java 的高级特性之一,如果想写出优雅而高扩展性的代码,或是想读得懂一些优秀的源码,泛型是绕不开的槛.本文介绍了什么是泛型.类型擦除的概念及其实现,最后 ...

  4. IntelliJ IDEA 使用 Java 11新特性以及Java 8 以来的Java 11新特性介绍

    文章目录 Java 11 安装 IDEA 设置 特性1:lambda表达式中允许使用var 特性2: String新增REPEAT 方法,方便拷贝字符串 特性3: 文件读写更方便:readString ...

  5. Java的三大特性之继承

    此处我会分为这几个部分来理解继承是怎么样的: 1.区分封装.继承和多态 2.区分限定词的范围 3.区分隐藏.覆盖.重载 4.继承的理解 5.一道面试题的原型 --------------------- ...

  6. Java 11 新特性

    2019独角兽企业重金招聘Python工程师标准>>> Java 11 新特性 转载于:https://my.oschina.net/u/3764794/blog/2993127

  7. Java 9 - 17 特性解读:​Java 13

    Java 13在2019年9月发布,这个版本引入的正式可用特性几乎没有,是我认为最无聊的版本之一.所以我们跳过Java 13直接来看Java 14吧. Switch表达式 我觉得switch表达式在日 ...

  8. Java 9 - 17 特性解读:Java 10

    在上一篇我们对Java 9的特性进行了一些回顾,今天接着来看看Java 10带来了什么特性.之所以需要把Java 8 到Java 17的特性归纳一遍,因为Java社区对Java 17的重视程度前所未有 ...

  9. 【Java 并发编程】线程简介 ( 进程与线程 | 并发概念 | 线程间通信 | Java 并发 3 特性 )

    文章目录 一.进程与线程 二.并发 三.线程间通信 四.Java 并发 3 特性 一.进程与线程 最开始是没有线程这个概念的 , 一个应用程序就是一个进程 , 应用程序运行时 , 如果还要处理与用户交 ...

  10. Java 面向对象四大特性

    Java 面向对象四大特性 1.抽象  2.封装  3.继承   4.多态 1.抽象.抽象就是将一些事物的共性和相似点抽离出来,并将这些属性归为一个类,简单理解是:将需要解决的事情抽象成Java代码. ...

最新文章

  1. Visual C# .NET 2003 语言的改变
  2. 用于道路目标检测的少镜头学习
  3. alpine安装启动mysql_在php5-fpm-alpine docker容器中安装php-gd依赖于alpine linux
  4. 个人代码库の自定义后缀名
  5. Tomcat乱码解决
  6. 【转载保存】B+树索引原理以及应用案例
  7. python3 set相关操作
  8. vsftp+tftp+dhcp+pxe+kickstart自动化安装操作系统
  9. ssl登录服务器未响应是什么意思,工行的网上银行在确认转账时网页总是未响应...
  10. 摄像头远程监控精灵 4.65
  11. material文本框与按钮边框旋转效果实现登录页面
  12. js网页右下角弹窗js特效
  13. html div图片定位,css将div定位到图片上的固定位置
  14. 5G NR Polar码系统编码和非系统编码(二)
  15. 前沿 | 国际可视化盛会PacificVis2017的十个精彩案例
  16. 大学生计算机技能应用大赛含金量,计算机设计大赛含金量
  17. 组态王与西门子plc通讯步骤
  18. go get google.golang.org/grpc 解决办法汇总
  19. html清除浮动的几种方式
  20. 2021和桥高级中学高考成绩查询,2021年上海高考各高中成绩及本科升学率数据排名及分析...

热门文章

  1. adreno性能天梯图_显卡如何看性能好坏?2020年1月-2月显卡天梯图性能排行榜
  2. 中国式的剥削-----烟草
  3. 玩家福音:10款最佳Linux免费游戏
  4. C语言自我实现itoa函数
  5. 高级软件工程第七次作业:LLS战队Alpha敏捷冲刺1
  6. php echo 莫名出现空行
  7. boost thread使用方法
  8. oracle中next_day()函数解析
  9. 计算机课题的理论依据怎么写,计算机理论论文大纲 计算机理论论文提纲怎么写...
  10. 熏蒸+有机改良剂,防治番茄枯萎病的有效新策略