什么是多态,继承,封装,重载,覆盖,抽象`接口?用JAVA语言来解释``谢谢

如题所述

首先,什么是多态(Polymorphisn)?按字面的意思就是“多种形状”。我手头的书上没有找到一个多态的理论性的概念的描述。暂且引用一下Charlie Calverts的对多态的描述吧——多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作(摘自“Delphi4 编程技术内幕”)。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。多态性在Object Pascal和C++中都是通过虚函数(Virtual Function)实现的。其次,继承(inheritance) 继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。比如可以先定义一个类叫车,车有以下属性:车体大小,颜色,方向盘,论坛,而又由车这个类派生出教程和卡车两个类,为轿车添加一个小后备箱,而为卡车添加一个大货箱。单继承与多继承 JAVA不支持多重继承,单继承使JAVA的继承关系很简单,一个类只能有一个父类,易于管理程序,同时一个类可以实现多个接口,从而克服单继承的缺点。封装(encapsulation) 类使得数据和对数据的操作集成在一起,从而对使用该类的其他人来说,可以不管它的实现方法,而只管用它的功能,从而实现所谓的信息隐藏。而重载和覆盖呢,给你个网址吧! http://tech.163.com/06/0420/09/2F52PMH90009159T.html!上面有很详细的介绍!而抽象呢!抽象就是有点模糊的意思,还没确定好的意思。 比如我想买件衣服,我只是想买衣服而已,但还没确定是买白色的衣服还是蓝色的衣服,也还没确定是要买短袖还是长袖的衣服。 用到java上,就比方,我要定义一个方法和类。但还没确定怎么去实现它的具体一点的子方法,那我就可以用抽象类或接口。你也可以看看这个网址 http://tech.ddvip.com/2007-11/119606148137949.html!而接口呢,是初学者出错误最多的地方,我建议你好好看看这个网页上的老师说的话! http://zhidao.baidu.com/question/62850245.html!最后希望你早日理解这些复杂而多变的思想!我也是学编程的!呵呵……
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-08
在java上
覆盖···
就是说在父类中有一个函数M在子类中也有。但是在子类中的函数M的函数实体和父类的函数实体不同。
打个比方···
如果是父类是图像,那么在父类中的方法"画图"与子类三角形的方法"画图"肯定是不同的。因为父类可以是别的图形,而三角形只能是三角形。
这种父类有的函数子类也有但是实体不同的情况就是覆盖。

重载····
在很多情况下,一个函数是有参数的。
也就是说如果两个函数的名字相同,但是参数不同。那么这种情况就是重载。(不管函数体是不是一样的··)
这里参数不同是什么意思呢?
例如:没有参数,有参数,参数的个数,参数的类型,参数类型的排列顺序···这些如果不同的话都叫做参数不同。
但是参数名不同不是参数不同。

多态··· 是指 用同一类型来得到或者调用不同类型的的实体。
通常情况下是这样的。

我有一个父类F 这个父类F有很多子类,子类Z1,子类Z2。。。
这些子类都覆盖了父类的某个方法M

现在在某个函数要调用这些子类的方法M。但是我不知道到底是哪个子类。
因为这些方法实际上是不同的
所以如果没有多态的话。我就得去判断这个类到底是z1还是z2或者Z3等等···
而多态呢?
就是我在这个函数中直接将类型设置为父类F类型。同时这个方法也是父类里面的方法
事实上在运行的时候,如果你的实体是z1类型的,那么函数就会调用z1类里面的M而不是父类F里面的M或者其他,一次类推···

继承···
其实就是将一个大的类型范围变窄。这个小的类型是大类型的一部分。
例如"正三角形"这个类继承了"三角形"这个父类。
而"三角形"这个父类却又继承了它自己的父类"图形"
这种将特征具体化的情况就是继承。

封装····
就是说我将我的函数放在一个特定的类里面。
如果你没有权利,那么这个类是怎么实现的,还有哪些函数你是不知道的。而你能使用的这个函数是怎么实现的,你也是不知道的。
你只知道用这个函数有什么结果。那么将这种具体实现用类型隐藏起来的情况就是封装。
其实说封装封装···好像很神秘似的。
但是实际上也就是你自己写很多类而已。在主类(也就是含有main函数的公共类)使用的时候只是用各个类的实体调用这些函数。

那么接口就简单了···
给你使用的这个public类型的函数就是接口了。
当然在java里面还有另外一个东西交接口。interface····
这个是其实是一个类····但是里面的函数都是public的并且都没有实现。
需要你自己去实现。但是它实际上也是为了将public函数名统一而已。
这样别人能够使用这些函数,但是不知道这些函数的实现···

至于抽象···
就想你要写一个函数实现开灯。
那么这个实体"灯",你写成一个类型如light
在这个类里面你在实现一个函数opnLight,因为要外部调用的,需要设置成public
这样一来,这个light类就可以实现所有的灯的开灯这个动作了。
这种将由实体到类型的过程就是抽象。
第2个回答  2013-08-08
关于多态,继承的实例 http://www.mscto.com/Javatec/03380903.html
第3个回答  2013-08-08
1.多态:
重载是多态的一种表现形式
函数重载的简单示例:
Class Test{
Public void draw(){}
Public void draw(int x,int y){}

}

2.继承
以下用一个抽象类的示例演示继承和方法的覆盖:
父类:abstract class Father{
void doSomeThing();//声明抽象方法
}

子类:class Son extends Father{//用extends实现继承父类
Public void doSomeThing(){}//覆盖父类中声明的抽象方法
}

3.接口
声明接口:
public interface A{
void getMessage();
}

实现接口:
public class B implements A{ //实现接口
public void getMessage(){}//覆盖父类中的方法
}

4.封装:
封装就是实现对信息的隐藏,对外公开能被外界调用的方法
简单例子:
class Test{
private String name;//声明私有属性

//通过公开的方法访问类内部的私有变量
public void setName(String name){
this.name = name;
}

public String getName(){
return this.name;
}
}本回答被网友采纳
相似回答