A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 阳光的嘉主角 中级黑马   /  2014-7-18 09:27  /  962 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

接口和抽象类区别到底是什么啊!

5 个回复

倒序浏览
我刚看到那里,只知道接口里面定义的就是全部抽象类,
回复 使用道具 举报
1).抽象类可以有实现(包括构造函数),而接口不可以有任何实现,重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,子类必须覆盖它们。接口中所有方法都必须是未实现的。
2).抽象类中还以有成员变量(包含静态成员变量)、属性、常量和静态方法,并且他们可以是非公共的;而接口中不能有成员变量、常量、静态方法,只能有公共的属性。
3).抽象类可以从另一个类或者一个/ 多个接口派生;而接口不能从另一个类派生却可以实现另一个或多个接口。
4).一个.net 类只能从一个父类中派生即使这个父类是抽象类;然而一个.net 类可以实现多个接口。(但是如果从一个抽象类派生或者从一个/ 多个接口实现,则必须实现抽象类中抽象方法或接口中所有的方法)
回复 使用道具 举报
区别大了
回复 使用道具 举报
接口里面全是抽象方法,抽象类里面可以不全是抽象方法!一个类以实现 多个接口,但只能继承一个类
回复 使用道具 举报
抽象类和接口的区别:
1、从成员变量上区别:抽象类可以有任何形式的成员变量(访问类型可以任意),
     而接口中只能有默认的public static final修饰的成员变量;
2、从方法上区别:抽象类中可以有抽象方法(访问类型是public,protected),静态方法,构造方法,普通方法;
     而接口中只能有抽象方法(默认public abstract修饰);
3、一个类可以实现多个接口,但只能继承一个抽象类(extends必须写在implements之前)。

补充:a.接口可以继承接口。
           b.抽象类中可以有非抽象方法,但是有抽象方法的类一定是抽象类。
           c.普通类和抽象类唯一的区别:抽象类不能创建对象(被实例化),抽象类中有抽象方法。
              d. 抽象类和接口中定义的抽象方法,必须由子类或实现类全部实现,否则该类必须定义为抽象类。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马