接口和抽象类的区别

来源:互联网 发布:应用商店要windows更新 编辑:程序博客网 时间:2024/06/11 00:00

导师建议拥有一个个人博客,将每天的收获分享到个人博客里,算是一个总结。我这个编程小白偷了一个月的懒之后,今天终于准备开始更新自己的博客了。开心开心 ^_^ ^_^ ^_^


最近在看程杰著的大话设计模式一书,感觉非常棒,但是竟然是C#语言的,我这个编程小白唯一稍微会一点的大概就是java了吧,所以我决定 把里面的代码改写成java版本,锻炼一下自己的编程技能,顺便在博客里做个记录呀!


接口:

interface Demo {

void method();

 }

class Demo1 implements Demo {

void method1 (){

.........

 }

 }


抽象类:

abstract class DemoA {

abstract void methodA();

 }

class DemoB extends DemoA{

void methodB (){

........

 }

 }



关于接口和抽象类的区别:

1、从设计理念上来讲 接口(interface)代表着一种 like-a的关系,它代表了一种程序的协定。抽象类(abstract class)代表了 一种is-a的关系,即子类是父类的一种,比如麻雀是一种鸟。

2、一个类只能继承自一个抽象类,但是可以实现多个接口。

3、抽象类中可以有自己的数据成员和非abstract方法

      接口中只能有 static final 类型的数据成员,和abstract方法

4、接口中的变量默认public static final类型,而且必须为其赋初值。实现类中不能重新定义,也不能改变其值。

      接口中的方法默认都是public abstract类型

5、抽象类中的变量默认friendly类型,子类可重新定义,重新赋值

6、抽象类中可以赋予方法默认行为,即构造函数

      接口中不能定义构造函数,要使用委托。







原创粉丝点击