关闭

抽象

标签: 多态
140人阅读 评论(0) 收藏 举报

多态

静态多态

在编译期,就确定调用哪个对象的哪个方法
- 体现一:方法的重载;
- 体现二;单独使用的重写;

动态多态

在编译期不清楚,在运行期根据具体情况确定哪个方法

  • 动态绑定
  • 重写

转型

基本数据类型

  • 自动转换
  • 强制转换

引用数据类型

条件:必须有继承关系

  • 向上转型(绝对成功,没有风险)
  • 当父类的引用指向子类的对象,该引用只能看见来至父类的属性行为,看不到子类特有的行为属性;
  • 当父类的引用指向子类的对象时,该引用调用被子类重写的方法时,得到子类重写后的效果
  • 向下转型(强制转型,不一定成功,有风险)
  • 只有在本类的引用指向本类的对象是才会成功

动态绑定

  • 父类的引用指向子类对象,同事调用父类被重写的方法

instanceof

用instanceof规避强转的风险

抽象

表明该类具有这个方法,当不知道如何去实现;

  • 关键字:abstract
  • 有抽象方法的类必须是抽象类;
  • 抽象类不一定有抽象方法;但失去了设计的意义;
  • 抽象类不能产生对象;
  • 抽象类的用途是专门用来产生子类;
  • 当子类继承抽象类是,必须重写所有的抽象方法;除非该子类是抽象类;
  • 抽象类有构造方法,虽然自己不能产生对象;但子类可以产生对象
  • 抽象类不影响动态绑定;
  • 抽象类的引用可以指向子类,强迫子类必须重写要调用的抽象方法;·
0
0
查看评论

第2章 抽象依赖原则

脑图
  • yqj2065
  • yqj2065
  • 2015-09-18 13:21
  • 716

谈谈面向对象 之 抽象

一、引言 在上一篇博客中,我们谈了面向对象的基本概念,从这篇开始,我们谈谈面向对象的几个特征:抽象、封装、继承、多态。我们首先要谈的特征是抽象。 不止一位同事将抽象这一特征排除在外,认为面向对象有三个特征。这让我感到意外,因为,在我看来,抽象是面向对象最为重要的特征。对象本身,以及对象之间的关系,都...
  • hxtan
  • hxtan
  • 2013-12-09 08:45
  • 3561

Java千百问_05面向对象(003)_java中抽象概念如何体现的

点击进入_更多_Java千百问1、抽象是什么抽象,和具体对立,定义了事物的性质,事物的性质会随着抽象概念的改变而改变。2、java中的抽象类是什么java中最直接抽象概念的应用就是抽象类和接口,这里我们看一下抽象类。抽象类和普通类一样,是一个模版。相比普通类,抽象类不具备实例化对象的能力。抽象类也可...
  • ooppookid
  • ooppookid
  • 2016-04-16 20:53
  • 4921

Java 中对抽象的认识

抽象也是Ja va的四大特征之一,如果类可以被实例化成具体的对象,这个类就是具体类,反之抽象类是指不能被实例化的类.在抽象类中,类的所有其他功能都存在,成员变量,方法,构造器等都可以用同样的方式访问,仅仅是不能创建抽象类的实例(对象),他是专门做继承的.    ...
  • luoxl81
  • luoxl81
  • 2011-11-09 14:14
  • 1922

面向抽象编程

需求:把一个User类给添加到数据库中 对于此功能的不同实现方法: 最原始的方式:  写一个User类,在User类的main方法里面首先new一个User;对象出来,  之后把他给写入到数据库 第一次改进之后:  写一个User类,一个Test类,在Test类中的ma...
  • tengdazhang770960436
  • tengdazhang770960436
  • 2011-12-05 09:45
  • 1670

从一些小例子体会面向抽象编程(一)

软件设计中最重要的一条原则就是“开-闭”原则(Open for extension, Closed for modification)。符合“开-闭”原则的系统,通常在稳定性、可扩展性、可插拔性等方面有非常良好的表现。实现“开-闭”原则,抽象化是关键,良好封装“可变”、“易变”部分是主要手段。我们要...
  • arthur_forever
  • arthur_forever
  • 2012-01-04 09:44
  • 741

抽象: 程序员必备的能力

在软件业,抽象能力的重要性怎么说都不为过,因为软件开发是一个高度复杂的智力活动,程序员经常需要面对、处理异常复杂的业务和逻辑,如果你不具备强大的抽象能力,无法把具体变成概念,进而驾驭概念进行思考, 你就很难降低问题的复杂度,从而陷入泥潭,无法自拔。 无论你学会了多么强大的程序语言,你的编程能力也...
  • nylx
  • nylx
  • 2013-08-09 13:28
  • 6059

JDBC(3)JAVA连接数据库之 抽象DAO操作

这一篇主要练习了抽象DAO操作 关于所有的表操作都会对应一些操作,我们都会把这些抽取到对应的DAO中。那么存在大量的重复操作,是否可以抽出通用的部分,供大家继承使用。
  • hhyqhh
  • hhyqhh
  • 2016-12-10 11:42
  • 421

数据库的抽象设计

在设计数据库的时候也可以利用在编写代码的的抽象类概念,尤其是在有很多业务有重复的功能的情况下。以往我们在做教务的时候都是分开做的,像选课,考试,以及评教系统等等,都是各自维护自己的基础数据,而在一个学校内,学生和教职工是一样的,这些数据就可以共享,用一个系统来维护,而其他系统直接拿来用就可以,避免各...
  • Jesse621
  • Jesse621
  • 2013-03-10 11:31
  • 4461

什么叫抽象,编程中怎么理解抽象的概念。

面向对象软件开发的一个基本方法就是抽象,到底什么是抽象呢? 抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征。 例如苹果、香蕉、生梨、葡萄、桃子等,它们共同的特性就是水果。 得出水果概念的过程,就是一个抽象的过程。 要抽象,就必须进行比较,没有比较就无法找到共同的部分。...
  • Gy__My
  • Gy__My
  • 2016-06-17 17:53
  • 1839
    个人资料
    • 访问:2962次
    • 积分:239
    • 等级:
    • 排名:千里之外
    • 原创:21篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条