码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA抽象类

时间:2015-06-04 00:45:59      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:

抽象类:

什么是抽象类?

面向对象的概念中,我们知道所有的对象都是通过类来描绘的,但是反过来却不是这样。并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

 

设计上的抽象概念?

抽象类往往用来表征我们在对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质相同具体概念的抽象。

比如:如果我们进行一个图形编辑软件的开发,就会发现问题领域存在着圆、三角形这样一些具体概念,它们是不同的,但是它们又都属于形状这样一个概念,形状这个概念在问题领域是不存在的,它就是一个抽象概念

 

不能实例化?

正是因为抽象的概念在问题领域没有对应的具体概念,所以用以表征抽象概念的抽象类是不能够实例化的。

 

Java中实现抽象类的两种机制:abstract class & interface

 

语法层面上比较:

abstract class Demo{

       abstract void method1();

       Void method2();  //所有成员方法可以为abstract也可以为abstract

}

interface Demo{

       Static final int I;   //数据成员必须为是static final类型

       (Abstract) void method1();       //所有的成员方法都是abstact

}

 

编程上:

abstract class:继承关系,一个类只能使用一次继承关系

                            可以赋予方法默认行为

interface:一个类可以实现多个interface

                     方法不能拥有默认行为(表现在派生类中代码重复,不利于代码维护)

 

设计理念上:

Abstract class:本质上表现为类,所以和继承(extends)是”is a”的关系

Interface:只是一种契约的实现(implements)

 

http://www.ibm.com/developerworks/cn/java/l-javainterface-abstract/

JAVA抽象类

标签:

原文地址:http://www.cnblogs.com/zhhuzby/p/4550557.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!