java面试题网

普通会员

483

帖子

9

回复

187

积分

楼主
发表于 2018-03-21 17:59:03 | 查看: 6473| 回复: 2

面向对象的特征有哪些方面?

①抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。

②继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段(如果不能理解请阅读阎宏博士的《Java与模式》或《设计模式精解》中关于桥梁模式的部分)。

③封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。面向对象的本质就是将现实世界描绘成一系列完全自治、封闭的对象。我们在类中编写的方法就是对实现细节的一种封装;我们编写一个类就是对数据和数据操作的封装。可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口(可以想想普通洗衣机和全自动洗衣机的差别,明显全自动洗衣机封装更好因此操作起来更简单;我们现在使用的智能手机也是封装得足够好的,因为几个按键就搞定了所有的事情)。

④多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应。简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。多态性分为编译时的多态性和运行时的多态性。如果将对象的方法视为对象向外界提供的服务,那么运行时的多态性可以解释为:当A系统访问B系统提供的服务时,B系统有多种提供服务的方式,但一切对A系统来说都是透明的(就像电动剃须刀是A系统,它的供电系统是B系统,B系统可以使用电池供电或者用交流电,甚至还有可能是太阳能,A系统只会通过B类对象调用供电的方法,但并不知道供电系统的底层实现是什么,究竟通过何种方式获得了动力)。方法重载(overload)实现的是编译时的多态性(也称为前绑定),而方法重写(override)实现的是运行时的多态性(也称为后绑定)。运行时的多态是面向对象最精髓的东西,要实现多态需要做两件事:(a) 方法重写(子类继承父类并重写父类中已有的或抽象的方法);(b)对象造型(用父类型引用引用子类型对象,这样同样的引用调用同样的方法就会根据子类对象的不同而表现出不同的行为)。



文章来自www.wityx.com,转载请注明出处!原文地址http://www.wityx.com/post/16_1_1.html


java面试题交流群:327440556      阿里云产品2000元通用优惠券限时领

普通会员

217

帖子

75

回复

160

积分
沙发
发表于 2019-04-30 15:08:33
面向对象的特征有哪些方面?请用生活中的例子来描述。

答: 面向对象的三大特征:封装、继承、多态。

举例:(比如设计一个游戏)我现在创建了一个对象,名叫战士。

战士的属性是—性别,年龄,职业,等级,战斗力,血量。

它的方法—战斗,逃跑,吃饭,睡觉,死。

后来,我又建了一个对象,叫人。

属性:性别,年龄,职业,等级,血量

方法:逃跑,吃饭,睡觉,死。

我让人,成为战士的父类,战士可以直接继承人的属性和方法。

战士修改成—

属性:战斗力。

方法:战斗。

看上去战士的资料变少了,实际上没有,我们仍然可以调用方法—战士.死。

而且我们还可以重载战士.死的方法,简称重载死法。

我还建了一个对象—法师,父类也是人。

属性:法力值

方法:施法,泡妞。

你看,用了继承,创建对象变得更方便了。

再后来,我又建立了一个对象,叫怪物。

属性:等级,战力,血量。

方法:战斗,死。

建了个对象,叫白兔怪,父类怪物,可继承怪物所有的属性和方法。

属性:毛色。

方法:卖萌,吃胡萝卜。

普通会员

115

帖子

83

回复

169

积分
板凳
发表于 2019-09-24 15:21:25

面向对象特性的理解

继承:继承是从已有类得到继承信息创建新类的过程。(java中用extends关键字表示)

多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可

封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式

通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。面向对象的本质就是将现实世界描绘成一系列完全自治、封闭的对象。我们在类中编写的方法就是对实现细节的一种封装;我们编写一个类就是对数据和数据操作的封装。可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口。

多态:一个对象在程序不同运行时刻代表的多种状态,父类或者接口的引用指向子类对象

多态性是指允许不同子类型的对象对同一消息作出不同的响应。简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。多态性分为编译时的多态性和运行时的多态性。

如果将对象的方法视为对象向外界提供的服务,那么运行时的多态性可以解释为:当 A 系统访问 B 系统提供的服务时, B 系统有多种提供服务的方式,但一切对 A 系统来说都是透明的。

方法重载(overload)实现的是编译时的多态性(也称为前绑定),而方法重写(override)实现的是运行时的多态性(也称为后绑定)。

运行时的多态是面向对象最精髓的东西,要实现多态需要做两件事:

1. 方法重写(子类继承父类并重写父类中已有的或抽象的方法);

2. 对象造型(用父类型引用引用子类型对象,这样同样的引用调用同样的方法就会根据子类对象的不同而表现出不同的行为)

继承的特点、好处

继承的特点:

  1. java中只能单继承,没有多继承。
  2. java可以有多重(层)继承。

继承的好处:

  1. 继承的出现提高了代码的复用性。
  2. 继承的出现让类与类之间产生了关系,提供了多态的前提。

您需要登录后才可以回帖 登录 | 立即注册

java面试题网www.wuliaokankan.cnjava建站系统提供技术支持V2.1 网站地图 © 2016-2018