Java编程思想阅读笔记(第九章接口)

抽象

- 包含抽象方法的类叫做抽象类,一个类中有一个或多个抽象方法,则这个类必须被指定为抽象类

- 抽象类不能直接实例化,需要依靠子类采用向上转型的方式处理

- 子类(如果不是抽象类)则必须覆写抽象类之中的全部抽象方法(如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类。);

- 抽象类必须有子类,使用extends继承,一个子类只能继承一个抽象类; 

- 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类

- 构造方法,类方法(用static修饰的方法)不能声明为抽象方法

- 抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。

接口

接口就是一个完全的抽象类,接口里面只有抽方法。
接口可以多实现,且接口中的方法必须为public,否则只能得道默认的包访问权限
接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类
接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为 public abstract(只能是 public abstract,其他修饰符都会报错)。
接口中可以含有变量,但是接口中的变量会被隐式的指定为 public static final 变量
接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法。

接口与类相似点

一个接口可以有多个方法。
接口文件保存在 .java 结尾的文件中,文件名使用接口名。
接口的字节码文件保存在 .class 结尾的文件中。
接口相应的字节码文件必须在与包名称相匹配的目录结构中。

接口与类的区别

接口不能用于实例化对象。
接口没有构造方法。
接口中所有的方法必须是抽象方法。
接口不能包含成员变量,除了 staticfinal 变量。
接口不是被类继承了,而是要被类实现。
接口支持多继承。

猜你喜欢

转载自blog.csdn.net/u010391342/article/details/79796123