抽象与封装

看百度百科上抽象类的定义:

使用了关键词abstract声明的类叫作“抽象类”。如果一个类里包含了一个或多个抽象方法,类就必须指定成abstract(抽象)。“抽象方法”,属于一种不完整的方法,只含有一个声明,没有方法主体。抽象类中可以没有抽象的方法,但是包含抽象方法的类一定是抽象类,抽象类和普通类其实没有多大区别,除了抽象类不能被实例化外,但是抽象类与接口又有些区别,不仅仅在于一个是类,一个是接口。

接口中定义的变量默认都是public static final,即只能够有静态及不能被修改的数据成员,抽象类中的数据成员可没有这样的定义,和普通类中的数据成员没什么区别。

抽象语法:

在面向对象的概念中,我们知道所有的对象都是通过类来描绘的,但是反过来却不是这样。并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类往往用来表征我们在对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。
在面向对象领域,抽象类主要用来进行类型隐藏(也就是封装)。我们可以构造出一个固定的一组行为的抽象描述,但是这组行为却能够有任意个可能的具体实现方式。这个抽象描述就是抽象类,而这一组任意个可能的具体实现则表现为所有可能的派生类。
抽象类有点像策略模式,在抽象下,针对具体的问题我们可以有不同的实现。
抽象类中的抽象方法不能使用private、static、synchronized、native等访问符修饰,同时方法必须必须以分号结尾。
抽象类是is-a,接口是has-a的关系

参照百科文章: java抽象类《http://baike.baidu.com/link?url=XXzpQagsZR1pMNFrEHfSq2YZRp9fUfWaiDHZhpEQPdac63QIoWRbGVe9ssfsksXmGOHa7zeh2hA2HyZVa2mQRa》


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值