面向对象概念问题,什么是封装、继承、多态?他们的作用和好处? 求详细答案高分悬赏

这问题有那么难吗,以java为例吧

封装:就是对象的属性和方法打包到一块
好处:简单理解就是通用,灵活,独立;封装也可以理解为一个模板.
例子:游戏的职业.
比如法师的血蓝和技能.战士的血蓝还有技能.他们都有共同的属性只不过参数不一样,封装就是把职业共同的属性打包到了一块

继承:A类可以拥有B类的属性和方法,而且B类有自己独立的属性和方法(A没有)
好处:我的理解就是节省代码.
例子:操作系统来说XP的版本
XP的专业版就是继承XP的家庭版(家庭版的功能专业版都有,专业版的功能家庭版没有).
而且XP专业版再拥有自己独立的功能

多态:方法的重写和重载
好处:我的理解就是为了达到目标多了几条选择
例子:去韩国,可以坐船,可以坐飞机

希望能帮到你
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-02-20
封装,简单理解就是把一系列的数据放在一个类中,如果形容一个人(假设吧‘人’作为一个类),我们可以用身高(hight),体重(weight)等来描述,如果不封装,我们需要3个变量来形容它。在面向对象中,可以用一个Person类封装这些数据,Person具有3个成员变量,分别是 height,weight。使用的时候,每当生成一个这样的类的对象,就具有这3个属性。

继承,如果B类继承A类。那么B类将具有A类的所有方法,同时还可以扩展自己独有的方法和属性。还用人做例子。‘人’是父类,那么‘男人’,‘女人’都是继承自‘人’。也就是说,不论‘男人’,‘女人’,都具有‘身高’,‘体重’这两个属性,同时,他们可以有自己独有的属性。比如‘男人’可以有一个‘妻子’属性来表示他的妻子是谁。,而女人可以有‘丈夫’属性。

多态,在java中,同一个方法可以有多种不同的表现形式,具体说来分为重载和重写。重载就是一个方法的方法名相同而所具有的参数列表不同。比如:
public String talk(String content); //参数是String,
public String talk(String content, int number) //参数是2个,String和int
重载则是子类在继承父类的同时,重新实现了父类的某个方法。重载的方法名和参数都必须完全相同。
比如父类
public String talk(String content) {
System.out.print(content);
}
子类继承该类,所以也具有talk这个方法,他重新定义了该方法的实现
public String talk(String content) {
System.out.println("Hi" + content);
}
第2个回答  推荐于2017-09-16
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确描述共性的方法,对象的一个新类可以从现有的类中的派出,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。
面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。本回答被提问者采纳
第3个回答  2012-02-13
哎 我当初也有你这冲动。。说到底面向对象是一种世界观。人类的思考目标就是对象,编程时以这种观点来组织程序就是面向对象编程。我个人理解,话说你想一步到位就有点不太现实。只能慢慢体会。封装指类对外屏蔽内部细节。继承是指类之间有继承关系,子类有条件地继承父类的特征。多态说通俗一点就是以一种更泛化、更通用的观点或者视角去对待一个具体对象。我只理解到这个程度。貌似直到现在都没有一个公认的、权威的定义,初学阶段琢磨这些有点儿钻牛角尖了。建议你直接上手编程。路还长,童鞋。。追问

如果面试时遇到这种问题怎么办呢?我也知道三言两语说不清,但是问到我我也说明白

追答

恩,面试问这个的还真是不少。建议你看看Thinking in Java 或者 core之类的权威的书,把书中介绍面向对象概念的部分记下来,面试的时候好有个应付。这是我想到的最“突击”的办法了。

第4个回答  2012-02-12
封装体现在公有、私有、受保护。。。。
继承体现在类的继承。。。就是可以免去重复定义吧。。。
多态体现在虚函数、动态联编。。。。本回答被网友采纳