面向对象
来源:互联网 发布:股票精灵软件 编辑:程序博客网 时间:2024/06/05 21:57
面向对象就是将所有的事和物都进行归类,抽象。但是在计算机编程中,有时候是用计算机来捕获一些动作,或者用计算机来做一些动作。那么这么动作也要进行归类,形成一个动作类,那么动作的实现就是这个类的里面的某个方法,用方法来实现动作。
面向对象有三个特性
1.封装:
封装就是定义java类中将控制域(Field)和方法被外部访问的权限,有4中 public private protected default 在文章(http://blog.csdn.net/lixujunk/article/details/39931267)有做用法解释,目的就是为了保护某些作用域不被随便修改,另外一个作用是隐藏类的细节。一般是隐藏类的域,将方法暴露出来,利用方法控对这些域进行访问和操作。
2.继承:
继承用关键字 extends 子类将继承父类的所有的非private和default 类型的域和方法
在java中有子类继承父类,子接口继承父接口,
java是单继承的模式,C++是多继承的模式,java的子类只能有一个父类,为了弥补多个没有办法多继承的优点,便使用接口的方式,java一个类可以实现多个接口,当然 接口的好处不只是为了这个,还有就是java的面向接口编程。
1.多态:
多态就是同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。
JAVA引用变量有两个类型:一个是编译时的类型,一个是运行时的类型,编译时的类型由声明该变量时使用的类型决定,运行时的类型由实际赋给该变量的对象决定。如果编译时类型和运行时类型不一致,就会出现所谓的多态。
举个例子;上图中 Sub 为子类 ,Base 为父类,箭头为继承关系
public static void main(String[] args){ Base base = new Base(); base.test(); //运行 ① 中的test方法 Sub sub = new Sub(); sub.test(); //运行 ② 中的test方法 Base b_s=new Sub(); b_s.test(); //运行 ② 中的test方法}
Base b_s=new Sub();这句代码中对象b_s编译时的类型是Base,但运行时的类型是Sub,运行时的类型是后期绑定的,绑定时子类的方法覆盖父类的方法(static和final 方法除外,private也是属于final方法的)。也就出现了多态的现象。
多态成立的3个条件是a 继承 b 重写父类的方法 c 父类引用指向子类对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- Delphi更新本地时间
- AutoCompleteTextView中的弹出框实现模糊查询
- Fragment上下文菜单示例
- FreeMarker
- 模板方法设计模式
- 面向对象
- MeasureSpec介绍及使用详解
- 【SPOJ】1557 Can you answer these queries II 线段树
- GO语言已经可以写Android项目了,你知道吗?
- 基于XMPP 协议的开发 android
- Android SDK Download List 开发工具下载地址
- VS2008 格式化时候乱码 或者 为全为0
- 让ie支持html5的标签
- IE浏览器提示"是否停止运行此脚本"的解决方法