抽象类与接口
抽象类:
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)。
现在的几乎什么都不懂,但是不代表以后的我也是这样。