Java面向对象
- 什么是面向对象?
- Java是一门面向对象的编程语言(oop)全称(Object Oriented Programming)。列如做某一件事,思考怎样去做,第一步应该做什么,这是面向过程。思考应该让谁去做,怎么做与你无关,这就是面向对象
- 面向对象的核心
- 1.封装
- 对象中的成员该隐藏的隐藏、该公开的要公开
封装:顾名思义,隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。
封装的目的:
增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过 外部接口,一特定的访问权限来使用类的成员。
封装的大致原则:
把尽可能多的东西藏起来.对外提供简捷的接口.
把所有的属性藏起来.
封装好处:将变化隔离;便于使用;提高重用性;安全性。 - 2.继承
- 继承:不劳而获。
如果有2个或者多个类,有很大的雷同度比如:属相有很多重复,方法重复。这个时候我们可以把重复的代码提取出来放到一个独立的类里让这个2个类,分别继承于这个类。这个就可以获得这个类里面的内容了。(内容指的是属性以及方法)继承之后,只需要在这2个类里面分别添加自己独特的内容即可。独特的内容(自己有,但是父类里没有,例如属性和方法)。被继承的类 被称为父类或者超类或者基类。继承别人的类的类,称为子类或者派生类。
在java里只允许单继承,不允许多继承。一个类只能有一个父类。一个类可以有多个子类。java里使用extends来表示继承。在定义类的时候指定它的父类是谁
子类能从父类那里继承什么呢?
答:继承了所有非private的属性和方法。
本质上,私有的属性和方法也继承了,只不过
不能直接访问。
父类的构造方法是继承不了的!
为什么呢?
因为构造方的特点是:方法名必须与类名相同。
但是你可以调用父类的构造方法。
调用父类的构造方法使用super(),super(参数列表) - 3.多态
定义:
3.1指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)
3.2实现多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。
3.3作用:消除类型之间的耦合关系。
3.4现实中,关于多态的例子不胜枚举。比方说按下 F1 键这个动作,如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档;如果当前在 Word 下弹出的就是 Word 帮助;在 Windows 下弹出的就是 Windows 帮助和支持。同一个事件发生在不同的对象上会产生不同的结果。
3.5下面是多态存在的三个必要条件,要求大家做梦时都能背出来!
多态存在的三个必要条件
一、要有继承;
二、要有重写;
三、父类引用指向子类对象。