抽象类与接口

抽象类:

 1,抽象类不能用new来创造他的实例(在子类的构造方法中实例化),但是可以作为一种数据类型。下边是正确的(假设A是抽象类):

  A[] a=new a[10];

2,抽象类中可以没有抽象方法,但是有抽象方法该类一定是抽象类。

3,子类可以覆盖父类的抽象方法,并将它定义为abstract(但是很少用,一般在都实现了这种方法,但是他在当父亲的方法实现在子类变的无效时是很有用的,此时必须用他)。

4,即使子类的父亲是具体的,子类也可以是抽象的(如A与Object);

5,抽象类中的方法是非静态的,构造方法定义为抽象protected(因为他只能被子类使用);

compare 变量 构造方法 方法
抽象类 无限制 子类通过调用构造方法链调用构造方法,抽象类不能用new操作符实例化 无限制
接口 所有的变量为public static final 无构造方法,不能用new实例化。 public abstract

             一个类可以继承多个接口(implements),但是只能继承一个类,接口可以继承接口,但是接口不能继承类;

接口:

1,接口是对功能的拓展,它的目的是指明相关或者不相关类的多个对象的共同行为。

2,接口中只有常量和抽象方法。// 接口中只有的方法全是abstract。

3,接口可以继承接口(用extends)。

 

 

 

posted @ 2015-11-22 22:00  戒。  阅读(78)  评论(0编辑  收藏  举报