现在的位置: 首页 > 综合 > 正文

抽象类和接口的学习比较心得

2019年04月23日 ⁄ 综合 ⁄ 共 1011字 ⁄ 字号 评论关闭

Abstract class

1.abstract class 是介于一般类和接口之间的中庸之道
2.如果一个类中包含一个或者更多的抽象方法,那么这个类一定要声明成abstract,否则编译器就会报错
3.不能创建一个abstract 类的对象,即使这个抽象类中没有一个抽象方法
4.在一个子类继承自一个抽象类的情况下,如果想创建这个新类的对象,那么这个新的子类就要实现该抽象类中的所有abstract方法;否则该子类也必须是由abstract关键字修饰的抽象类
5.一个abstract 类也可以不包含任何abstract方法;在你有一个类但是没有必要拥有抽象方法,并且你想阻止产生这个类的任何实例时很有用

Interface
1.interface是比abstract概念更纯粹的抽象,在接口中一丁点实现也没有;接口允许创建者决定方法名、参数列表、返回值类型但是没有方法体 
2.interface中的方法定义不需要加访问权限修饰符,因为不管你加不加public关键字,interface中方法的定义都默认是也必须是public的;不管你加不加abstract关键字,interface中的方法定义都是默认是也必须是abstract的,这点很有用!
3.interface 中的域值的修饰符默认是也必须是public static final的,所以例如在interface中定义String name="zhang";即使没有修饰符public static final修饰那么name也是public static final的;
4.衍生类如果继承自非接口的类,那么只能继承一个类;剩下的其他可以继承的都是接口,在implements关键在后面可以跟着任意多个interface,这些interface要用逗号隔开;并且你也可以把该衍生类向上转型为任意一个interface
5.如果一个类既用extends关键字继承一个class又用implements关键字实现接口,那么要先写extends 继承class然后再写implements实现接口,否则编译器报错;

6.在实际开发中我们要首选interfaces而不是abstract class,首选class而不是interface,interface或者abstract使用时需要有充分的理由,否则就是只能在代码重构时是最有用的
7.通过继承很容在新的接口中添加新的方法,并且也很常用结合几个接口产生新的接口;

抱歉!评论已关闭.