黑马程序员技术交流社区
标题:
抽象类与接口?
[打印本页]
作者:
疯狂程序
时间:
2013-3-21 11:06
标题:
抽象类与接口?
抽象类与接口有啥不同啊
作者:
Just_Only
时间:
2013-3-21 11:14
1:抽象类只能被单继承
接口可以多实现,接口的出现避免了多继承的局限性。
2:抽象类中的数据特点:
成员变量:可以是变量,也可以是常量
成员方法:可以是抽象方法,也可以是非抽象方法
构造方法:有构造方法
接口中的数据特点:
成员变量:是常量。默认修饰 public static final
成员方法:都是抽象方法。都有默认修饰 public abstract
构造方法:没有构造方法
3:抽象类中定义的是继承体系中的共性功能。
接口中定义的是继承体系中的扩展功能。
4:抽象类被继承是"is a"关系:xx是yy的一种
接口被实现是"like a"关系:xx像yy的一种
作者:
牛合超
时间:
2013-3-21 11:22
通俗的说,抽象类里可以有抽象和非抽象方法,但接口里全是抽象方法,还有就是继承只能单一继承了,而接口可以继承接口,而且可多重继承,
这样相比继承的单一局限性,接口扩展性更强。当然了,定义接口后,接口里的成员变量,和成员方法都是固定的,如果修饰符未写,会自动补上的。
作者:
赵鸿富
时间:
2013-3-21 11:42
抽象类中可以有实例方法和变量,但是接口中的方法全部都要是实例方法,而且接口当中不允许存在变量,都是常量,换句话说,接口是纯粹彻底的抽象类
作者:
汪平乐
时间:
2013-3-21 12:27
1.类只能单继承,接口可以多实现(一个类只有一个直接父类,但可以实现多个接口);
2.被abstract修饰的抽象类不能实例化,只能作为其他类的超类(即作用是用来被子类继承的),如
abstract class demo() {
属性定义;
//构造方法,不能用abstract 修饰;
方法定义 = 抽象方法(抽象类必须要有的) +非抽象方法(不是必须的);
}
接口 public interface 接口名 //(extends 父接口)
{
public static final 常量名 ; //静态常量名
public abstract 返回类型 方法名 (// 参数列表) // 抽象方法说明
},是很多子类抽取的共性的抽象概念
作者:
陈丽莉
时间:
2013-3-21 15:04
有问题继续追问; 没有的话,请将帖子分类改成【已解决】~
作者:
田光峰
时间:
2013-3-23 12:26
含有抽象方法(abstract)的类焦作抽象类,抽象类为他的导出类提供了一个公共接口,不同的子类可以用不同的法方法表示接口。如果从一个抽象类继承,并想创建该新类
对象时,那么就必须为基类提供的抽象方法的具体实现,如果不这样做就道出了一个抽象类,编译器会强制我们用abstract关键字来限定这个类。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2