本帖最后由 唐永康 于 2012-11-25 18:05 编辑
/*
JAVA的三大特性:继承,封装和多态。
对于三大特性的理解,不同人的理解角度可能不一样,但殊途同归。
下面是我个人的理解。
*/
/*
封装理解:
尽量说的简单一点,没有必要说的那么晦涩难懂。封装就是把
一个繁杂细节包装起来,提供简单的外部应用给你使用。比如我想要一台电脑,只需要花钱买就是了,
至于电脑是怎么造出来的,电脑里面的结构是如何实现的和你没有关系
电脑有提供了和你交互的键盘啊,USB接口啊,鼠标啊,等等。这些简单的,你能够识别的,能够用的。
把内部的繁杂的细节给包装起来了,这就是现实生活中看得见摸得着的封装。比如:在现实生活中一个老板想干成一个项目,
只需要找懂这个项目的人就可以了,至于项目的细节,老板完全不必操心。老板只需要管好这个做项目的人就可以了。
在计算机程序中也是这么一个道理。下面写一段简单的代码来体现计算机程序的封装。
*/
//封装:
class FengZhuang
{
private int a;
//这里method方法使用了关键字private,就是把这个方法封装在
//这个类的内部,如果想使用这个方法的只需要这个调用就可以了。
//this.method或者newFengZhuang().method
//看看这样调用方法就简单多了,至少从书写角度上不必再把整个
//方法全部写完。这就是一个简单的封闭。
private void method()
{
System.out.println("fengzhuang");
}
}
/*
继承理解:
从字面上理解就能顾名思义,意思就是说把祖辈留下来的东西给继承了
当然有的时候可能因为各种原因没有完全继承,只是继承了一部分,这种情况也是有的。在JAVA中的继承和现实生活中的一样。
java是单继承的,意思是说一个子类只能有一个父类。比如:一个孩子只能有一个亲生父亲。
但有的人会说了,不对呀,在现实生活中除了亲生父亲之外还有很多类似于父亲这样的角色。比如干爹,义父,后爸,养父,监护人。。等等。
所以JAVA为了更好的反应生活的继承关系再引入了另一个东西,接口。一个子类可以实现(实际上就是继承)多个接口。
接口里面的方法没有方法体,只有一个方法名字。所以,你可以说JAVA是单继承的也可以说它是多继承的
子类除了子类除了继承父类的方法也可以有自己的方法,同时也可以覆盖父类的方法,生活中的例子也有,
比如:你父亲会喝酒,结果他的喝酒的基因遗传给你了,你也会喝酒,这就是继承。但不同的是你父亲只能喝半斤,
你能喝一斤,你升级了,比你父亲还能喝,这就叫覆盖。除此之外你父亲不会抽烟,但是你会抽烟,抽烟就是你自己的,这叫自己的方法。
下面写一段代码来反应继承的关系。
*/
class Fu
{
static void HeJiu()
{
System.out.println("喝半斤酒");
}
}
class Zi extends Fu
{
//继承并且覆盖父类的喝酒的方法
static void HeJiu()
{
System.out.println("喝一斤酒");
}
//自己的抽烟方法
void ChouYan()
{
System.out.println("抽烟");
}
}
/*
多态理解:
多态,从字面上理解,多种形态,说再简单一点就是父类的引用可以
指向子类的对象。多态是在继承的基础之上建立的,如果说没有继承就没法理解多态。
并且通过父类引用指向的对象可以调用子类里面的一些方法,前提是调用的方法必须是子类继承父类的方法,
如果调用子类自己的方法则失败。也就是说最终调用的还是父类里面的方法。在现实生活中也有这样的例子。
比如,分类,比如牛,马,猪都是动物对吧,你可以这样说,牛是一个动物,但反过来就不行了,动物是牛,这样显然是不对的。
*/
class Demo
{
public static void main(String[] args)
{
Fu fu = new Zi();
Fu.HeJiu();//父类里面有这个方法。
Fu.ChouYan();//父类里面没有这个方法,所以失败。
}
}
|