abstract修饰符 和 interface修饰符

==== abstract ================================================================================================ 首先,用abstract(抽象)修饰符指示所修饰的内容是缺少实现或未完全实现的。 abstract 修饰符可用于类、方法、属性、索引器和事件(不能修饰字段),只有抽象类中才能声明抽象的方法、属性、索引器和事件(当然其中也可以有非抽象的成员)。 抽象类只能是基类,它不能实现自己的实例,因此也就不能为static,标记为抽象或包含在抽象类中的成员必须通过从抽象类派生的类用override来实现。 被声明为抽象的方法不能有自己的方法体,只能这样:public abstract void fun();在抽象类中声明,而且在子类中必须最终实现它。 abstract修饰符其实很好理解,就是对那些从面向对象的思想中某一类的抽象出来的类进行修饰,所以它的使用意义就在这里。然后明白它的一些规定,就可以了。 ================================================================================================ 其次,还有很多人把abstract和interface混淆,其实这也是两个毫不相干,不同层面的东西,要说勉强说他们的共性只能说都是用到OOP总的抽象思想,下面结合《大话设计模式》一书中的表述和自己的说明阐明一下: 从代码层面上: 抽象类可以给出一些成员的实现,接口却不包含成员的实现,抽象类的抽象成员可以被子类实现,抽象成员需要实现类完全实现(即抽象类中可以有非抽象成员,他们可以有自己实现的内容,而且被子类继承时那些抽象的成员也可以实现;但是接口却不同,他们必须在继承它们的类中实现)。 一个子类只能继承一个父类,但是可以有多个接口 利用接口有两种方式:隐式执行接口成员和显式执行接口成员 其中隐式可以通过类和接口访问,而显式只能通过接口访问 从他们的思想用途上: 1、思想上:类是对对象的抽象,而接口是对行为的抽象(觉得行为这个词用的很好); 2、用途上:如果行为跨越不同的对象用接口,对于一些类似的类,用抽象类继承; 3、关系上:不是冲突的 4、设计角度上:抽象类是从子类中发现了公共的东西,泛化出父类,然后子类继承父类,而接口设计时根本就不知道或者根本不用考虑子类的存在,方法如何实现还不确认,预先定义。 以上几点应该很容易让大家明白 接口 是怎么一回事了吧? interface ================================================================================================ 最后,说说接口的用法和用途。 1、接口 interface 只包含 方法、属性、事件或索引器的签名(即不包括实现内容,和抽象成员类似,不能有具体的实现); 2、实现接口的类或结构必须实现接口中定义的接口成员(这个和抽象类的继承有类似,必须在使用它的类中完善他) 3、我们已经知道了接口是对行为的一种抽象,那么很明显,就不能限制一个类只能有一个,所以,一个类可以有多个接口。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值