抽象类和接口的异同
2016-01-12 本文已影响0人
萧灬瑟
抽象类
1.抽象类用abstract来修饰,它在关键字class前面。
2.抽象类无法实例化。
3.类的功能仍然存在,他的字段,方法和构造方法都以相同的方式进行访问。
4.如果一个类中含有一个抽象方法,类也必须是抽象的。抽象方法不需要定义,并且它的签名以分号结束,不用花括号。
5.任何一个子类必须覆盖这个抽象方法,或者将他继续声明为抽象方法。
6.抽象方法不能有方法体。
接口
1.接口的关键字是interface。
2.接口默认就是抽象的。当需要声明一个接口的时候不需要用abstract来修饰。
3.一个接口可以用来继承另外一个接口,和一个类继承自另一个类的方法相同。关键字用extends,并且子接口要继承父接口的所有方法。
4.接口可以多继承,以逗号隔开。
5.接口不能包含示例变量。接口中唯一能出现的变量的变量必修被static和final修饰,也就是只能出现常量,不能有变量。
6.接口中的每个方法都默认为是抽象的,所以不需要关键字abstract。接口中的方法默认为是public的。
7.接口不能包含构造方法。接口中的所有方法都是抽象的。
8.接口不能被类继承;只能被类实现。
9.如果一个类没有实现接口中的所有行为,这个类就必须声明为抽象类,需要用abstract修饰。
10.类只可以继承一个父类,但可以实现多个接口。
11.实现接口中的方法时需要注意类的权限。