**面向对象三大特性 **

封装

将抽象性函式接口的实现细节部分包装、隐藏起来

优点:

良好的封装能够减少耦合。

类内部的结构可以自由修改。

可以对成员变量进行更精确的控制。

隐藏信息,实现细节。

实现:把属性设为private类型,提供get\set方法。

继承

优点: 提高维护性,代码更加简洁,提高代码的复用性(复用性主要是可以多次使用,不用再多次写同样的代码)。

缺点:类之间的耦合高,代码独立性差。

特性:

子类拥有父类非 private 的属性、方法。

子类可以用自己的方式去实现父类的方法且可以对父类进行扩展。

可以单继承、多重继承,不可以多继承(一个类继承一个以上的类)

关键字:

extends(继承)

implenments(实现)

super关键字:实现对父类成员的访问(在子类方法中super.方法),用来引用当前对象的父类。

this关键字:指向自己的引用。

final关键字:声明类可以把类定义为不能继承的;用于修饰方法,该方法不能被子类重写:定义实例变量,不能被修改。

重写是子类对父类的允许访问的方法的实现过程进行重新编写。即定义属于自己的行为特点,主在过程。

参数列表与被重写方法的参数列表必须完全相同。

返回类型与被重写方法的返回类型可以不相同,但是必须是父类返回值的派生类(java5 及更早版本返回类型要一样,java7 及更高版本可以不同)。

访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为 public,那么在子类中重写该方法就不能声明为 protected。

声明为 final 的方法不能被重写。

声明为 static 的方法不能被重写,但是能够被再次声明。

子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为 private 和 final 的方法。

子类和父类不在同一个包中,那么子类只能够重写父类的声明为 public 和 protected 的非 final 方法。

重写的方法能够抛出任何非强制异常,无论被重写的方法是否抛出异常。但是,重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常,反之则可以。

构造方法不能被重写。

如果不能继承一个类,则不能重写该类的方法。

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

被重载的方法必须改变参数列表(参数个数或类型不一样); 被重载的方法可以改变返回类型; 被重载的方法可以改变访问修饰符;

被重载的方法可以声明新的或更广的检查异常;

多态

三个必要条件:继承、重写、父类引用指向子类对象

优点:使程序有良好的扩展,对所有类的对象进行通用处理

1.可替换性:多态对已存在的代码具有可替换性。

2.可扩充性:多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。实际 上新加子类更容易获得多态功能。

3.接口性:多态是超类通过方法签名,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现的。

4.灵活性:它在应用中体现了灵活多样的操作,提高了使用效率。

5.简化性:多态简化了对应用软件的代码编写和修改过程。

超级警探大战悍匪2java_Java笔记一相关推荐

  1. 超级警探大战悍匪2java_JavaWeb之会话技术

    会话技术 1.会话:一次会话中包含多次请求和响应. 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止 2.功能:在一次会话的范围内的多次请求间,共享数据 3.方式: 1.客户端 ...

  2. 【Python飞机大战游戏实战+笔记】黑马程序员Python教程项目实战记录【超详细】

    博主在哔哩哔哩上学习了黑马程序员的python教程,并且完成了老师讲的项目实战,为了巩固知识点通过这篇博客来记录一下. 目录 1. 创建python项目+pygame模块下载 1.1 创建项目 1.2 ...

  3. UML大战需求分析--阅读笔记02

    这次阅读了第三章--类图.本章主要讲解了类图的基本使用规则和一些使用的例子.类图是UML中非常重要的一部分,作用很大. 类图之间有五种关系:关联关系,聚合关系,组合关系,泛化关系,依赖关系.关联关系有 ...

  4. UML大战需求分析阅读笔记——03

    什么是面向过程的?什么是面向对象的?这个疑问在我刚入学学习C++的时候就有了,当时什么都不懂,遇见的全部都是闻所未闻的新名词.新概念,搞得自己一头雾水,今天看到第三章的开头语时发现了一种很有趣很通俗的 ...

  5. UML大战需求分析阅读笔记——02

    第二章主要就讲了两个问题:1.如何读懂用户需求 2.什么才是良好的与用户之间的关系. 一.如何读懂用户需求: 用户毕竟不是专业人士,有时候提出的需求和他本想达到的要求并不一致,所以我们做需求分析时不能 ...

  6. UML大战需求分析阅读笔记——01

    UML图分为结构型和行为型两种 ,结构型是静态的,而行为型是动态的.可以看成静态的有:哪些类.哪些构件.系统最后怎样部署:可以看成动态的有:如何与用户交互.各个类,构件,模块之间如何联系. 一.结构型 ...

  7. unity3d 2d游戏(太空大战)开发笔记

    最近刚开始看unity3d游戏开发,感觉2d游戏似乎简单些,所以先从2d游戏入手试试看吧. 2d游戏大约要分为背景,角色(需要控制的己方角色car,敌机enemy,奖励物品prop),ui(分数显示, ...

  8. 用 Java 实现坦克大战,这个有点强了!

    在Java开发中,坦克大战项目和23种设计模式无疑是经典中的经典,就算是开发5年甚至是10年以上的开发者,都不敢说自己真真实实掌握了23种设计模式,希望大家能够好好学习,并且能够掌握这些细节性的东西. ...

  9. 23种设计模式详解_太厉害了,清华大牛一个坦克项目就把23种设计模式给抽丝剥茧了...

    坦克大战项目 坦克大战项目通过一个联机对战游戏的手把手,一行一行的开发过程,让你精准的理解和运用JavaSE,DesignPatterns , TCP/IP, 多线程, NIO等基础知识.真正理解项目 ...

  10. Java三十天速成(java基础篇)

    Day01~04 ## 一. 数据类型和变量 package test;public class hello {public static void main(String[] args) {Syst ...

最新文章

  1. brew gd php_PHPBrew 使用指南
  2. python安装教程windows-PyCharm 安装教程(Windows)
  3. 【计算机网络】数据链路层 : IEEE 802.11 无线局域网 ( 802.11 MAC 帧头格式 | 无线局域网分类 )
  4. vscode里好用的html插件_知乎口碑最好的六大PPT插件分享!用好插件,效率倍增...
  5. 并发编程-17AQS同步组件之 Semaphore 控制并发线程数的信号量
  6. A wizard’s guide to Adversarial Autoencoders: Part 3, Disentanglement of style and content.
  7. python中用来回溯异常的模块_python学习笔记(异常)
  8. C 基本语法 | 菜鸟教程
  9. 读者来信(1)——项目经理,不要迷信制度!
  10. How is syntax error in Vue detected - Vue的语法错误检查机制介绍
  11. MapReduce原理全剖析
  12. SQL 学习笔记一 入门
  13. 清华排名首登亚洲第一,今年财务预算300亿
  14. [转]出租车中的MBA
  15. MTK6763平台手机 在国外无法成功注册VOLTE。求解
  16. JAVA输入/输出流详细讲解
  17. 计算机打印机图标删除吗,故障之:打印图标消失及打印任务无法取消
  18. Beta 反(tu)思(cao) 获小黄衫感言
  19. “90后”男子酒后乱性强奸醉酒女获刑3年
  20. 干货 | 数字经济创新创业——数字技术创造新经济

热门文章

  1. CRM系统有哪些效果?
  2. 最新影牛视频双端影视视频APP网站源码+详细视频教程
  3. 视频会议的进化方向是什么?
  4. 机器学习笔记 - EfficientNet论文解读
  5. Python调用摄像头
  6. harry -考级复习2
  7. 移远M26,三分钟打通TCP流程,AT指令详解
  8. mysql超卖问题处理_mysql 解决超卖问题的锁分析
  9. 网络分析工具——WireShark的使用(超详细)
  10. 无线桥连后不能访问服务器,路由器设置无线桥接后不能登录副路由器怎么办?...