【java学习】面向对象三大特性:封装,继承,多态
来源:互联网 发布:广州淘宝客服招聘 编辑:程序博客网 时间:2024/05/18 01:56
1,封装
1)概念:
首先是抽象,把事物抽象成一个类,其次才是封装,将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系。
2)体现:
形成“类”。
2,继承
1)优点:
继承可以使现有的代码具有可重用性和可扩展性。
2)使用:
①构造函数不能被继承,子类可以通过super()显示调用父类的构造函数
②创建子类时,编译器会自动调用父类的 无参构造函数
③如果父类没有定义无参构造函数,子类必须在构造函数的第一行代码使用super()显示调用
所以:new新对象的执行顺序:先执行父类构造函数,再执行子类构造函数。
④父类的static方法是与类一起加载,子类不能继承。
⑤子类重写或覆盖父类方法,子类的访问权限不能低于父类
3)super、this与extends
super指当前对象里面的父对象的引用,可以调用父类的构造方法、父类的方法和属性。
this指当前对象的引用,可以调用当前对象的某个方法或某个成员。
①super
与this类似。
在一个类的非static成员内部使用,比如super.method()
作用
A.表示调用父类的构造函数。
B.调用父类的被隐藏的非私有成员变量、函数。(如protected函数)。
C.用来调用父类中被重写的方法。
②extends
继承关键字。
③this
A.可以表示构造函数的传递。this(a,b)表示调用另外一个构造函数。
B.在非static成员内部使用,表示当前这个对象。
3,多态
1)概念:
多态可以分为两种类型:编译时多态(方法的重载)和运行时多态(继承时方法的重写)。
运行时多态依赖于继承、重写和向上转型。
为了降低系统各部分的依赖和避免魔法数,将switch语句用多态替换掉。
点击查看demo:通过多态和发射机制替换switch
点击查看反射机制
2)重载:
重载是指一个类里面(包括父类的方法)存在方法名相同,但是参数不一样的方法,参数不一样可以是不同的参数个数、类型或顺序。
java的静态多分派由方法重载来实现。(静态分派:所有依赖静态类型来定位方法执行版本的分派动作)。
3)覆盖:
类中存在和父类相同的方法即为覆盖。
java的动态单分派由方法覆写来实现。(动态分派:在运行期根据实际类型确定方法执行版本的分派过程)。
子类重写或覆盖父类方法,子类的访问权限不能低于父类。
4)单分派和多分派:
宗量:方法的接受者(亦即方法的调用者)+ 方法的参数。
单分派:根据一个宗量对目标方法进行选择。
多分派:根据多于一个宗量对目标方法进行选择。
java是一门静态多分派、动态单分派的语言。
5)向上转型的缺憾:
只能调用父类中定义的属性和方法,对于子类中的方法和属性它就望尘莫及了,必须强转成子类类型
- 【java学习】面向对象三大特性:封装,继承,多态
- java面向对象的三大特性----封装、继承、多态
- ⑤--面向对象三大特性:封装、继承、多态
- 面向对象三大特性-封装、继承、多态
- 面向对象编程三大特性------封装、继承、多态
- 【面向对象】三大特性——封装、继承、多态
- 面向对象三大特性——封装、继承、多态
- C# 面向对象三大特性:封装、继承、多态
- 面向对象三大特性:继承、封装、多态
- 面向对象三大特性(封装、继承、多态)
- 面向对象的三大特性:封装,继承,多态
- 补习:C# 面向对象三大特性:封装、继承、多态
- Java学习第六课--面向对象的三大特性(封装、继承和多态)
- oc学习笔记(四)面向对象-类的三大特性:封装,继承,多态
- java 面向对象三大特性(封装,继承,多态)以及抽象、接口的介绍
- 深入理解Java面向对象三大特性 封装 继承 多态
- java语言基础(23)——面向对象三大特性(封装、继承、多态)
- Java — 面向对象的三大特性(封装、继承、多态)
- [leetcode]: 53. Maximum Subarray
- 用MATLAB求串联、并联和反馈闭环传递函数
- Qt 连接到MySQL/解决QSqlDatabase: QMYSQL driver not loaded
- ios开发之NSUserDefaults
- 第一次 写博客
- 【java学习】面向对象三大特性:封装,继承,多态
- 《Ray Tracing in One Weekend》——Chapter 12: What's next?
- 计算机网络三
- eclipse把控制台移到下面去
- java web 中的${pageContext.request.contextPath }是什么意思
- 打印weka的Instances对象里的属性
- LPC2294 ARM7 ADS1.2 AXD startup.s 取数据中止 DataAbort B DataAbort
- 1135: 盐水的故事
- 状态图与活动图傻傻分不清