Forpersonaluseonlyinstudyandresearch;mercialuse类、抽象类、接口、继承和对象(java)来源:JAVA中文站()这不是什么教材,笔者有时会在论坛上瞧瞧,看到不少初学者问到很多问题,这些问题是java程序员应该懂得的,而一般书上不会讲到或者一笔带过的知识。因此斗胆涂鸦一篇文章,把想说的在这里一口气说完。这也是本人第一次写技术性的文章,文笔不畅之外,还请各位见谅。首先讲清楚类和对象的区别。类是广泛的概念,表示一个有共同性质的群体,而对象指的是具体的一个实实在在的东西。例如,“人”是一个类,它可以表示地球上所有的人;而“张三”、“李四”、“爱因斯坦”等则是一个个的对象,或者说它们是“人”这个类的一个个实例。在Java中,我们可以定义类,然后创建类的对象。例如://声明一个类“Human”classHuman{ privateStringname; publicStringgetName(){ returnname; } publicvoidsetName(Stringvalue){ =value; } //......}创建一个类:Humanhuman=newHuman();其次,很多人对对象和对象的引用认识模糊引用是程序操作对象的句柄,相当于C和C++中的指针。前面说了,对象是一个实实在在的东西,比如前面的代码:Humanhuman=newHuman();程序执行到这里之后,java虚拟机将会在内存中创建一个Human对象,并将这个对象的引用赋给human变量。这里有两步,首先是创建Human对象,然后把创建的对象的引用赋给human变量。如果声明了一个对象的引用,但没有将对象赋值给它,则这个引用指向了空的对象,或者说引用了不存在的对象。这时如果想通过这个引用访问对象,则会抛出空指针异常,例如:Humanhuman;//......("张三");下面重点谈一谈类、抽象类、接口和继承之间的关系不少细心的初学者在论坛上问类似这样的问题:1、接口不实现方法,但我却在程序中可以调用接口的方法,这是为什么?、Statement、ResultSet等都是接口,怎么可以调用它们的方法呢?2、抽象类不能实例化,但是jdk中却有很多抽象类的对象,这是为什么?,但InputStream是抽象类,怎么可以得到它的对象呢?不管怎么样,大家应该明白一点:不管是抽象类中的抽象方法,还是接口中定义的方法,都是需要被调用的,否则这些方法定义出来就没有意义了。可能有很多书上没有提到,或者提到了而读者没有注意到这一点:一个子类如果继承了它的基类,则表示这个类也是其基类的一种类型,这个子类的一个对象是子类类型,并且同时也是其基类的一个对象,它也具有基其类的类型;一个类如果实现了一个接口,则表示这个类的一个对象也是这个接口的一个对象。可能这样说不太好懂,又是子类、基类、类型、接口什么的,容易搞混。其实举个现实的例子你就会觉得其实很简单:如果“人”是一个基类,则“男人”是“人”的一个子类。如果“张三”是一个“男人”,也就是说“张三”是“男人”的一个对象,那么
《类、抽象类、接口、继承和对象(java)》- 来自淘豆网m.daumloan.com转载请标明出处.