一、抽象与接口类
1. public abstract class n { }
抽象方法: public abstract void a();
抽象类可以有抽象方法,有抽象方法的一定是抽象类;子类继承了抽象父类 一定要实现父类的 抽象方法;
2. interface 实现 implements;
接口成员方法只能是 抽象类方法;或者default修饰方法(jdk1.7以后的);
public interface n {
public abstract void a();
或者 public default void a();
}
实现 public class a implements n { }
抽象类和接口类都不能被实例化;如果要实例化的话 可以通过 多态,但是这并不是实例化抽象和接口类;
接口类与抽象类十分相似;
二、类与类,类与接口,接口与接口 的关系
类与类 只有单继承 或者 多层继承;
类与接口 一个类可以实现多个接口;
接口与接口 接口可以多继承接口;
三、抽象类与接口的区别
● 语法上区别
|
|
抽象类 |
接口 |
|
成员变量 |
可以有变量也可以常量 |
只能有静态常量,被public static final修饰 |
|
构造方法 |
抽象类不能实例化,但是有构造方法 |
接口也不能实例化,且没有构造方法 |
|
成员方法 |
可以有抽象方法,也可以有非抽象方法 |
只能是抽象方法,被public abstract修饰(jdk1.7及其以前) |
|
类之间的关系 |
只能单继承,可以多实现接口 |
接口之间可以多继承 |
|
代码块 |
可以有代码块 |
没有代码块 |
● 设计上区别
抽象类是对一种事物的抽象,即对类抽象;
而接口是对行为的抽象。
---初学者 一起交流。
浙公网安备 33010602011771号