抽象类与接口-笔记
关键字:接口
抽象类,接口与类是一个层次的概念,是java中极其重要的概念抽象类是从多个类中抽象出来的公共模板,提供子类均具有的功能。接口是从多个类中抽象出来的规范,体现的是规范和实现分离的原则,同时也有效的解决Java单重继承的缺陷。
*******普通方法与抽象方法的不同*******
普通方法需要有访问修饰符,返回类型,方法名,还要有一个方法体,
抽象方法也有访问修饰符,返回类型,方法名,但是它还多了一个修饰符——abstract,同时没有方法体,也就是说抽象方法没有实现。
普通方法与抽象方法的区别:
1,普通方法必须要有实现体,抽象方法不能有实现体,抽象方法要用abstract修饰符来修饰。
********普通类与抽象类的区别*********
普通类:要有访问修饰符,class关键字和类名。
抽象类:在普通类的基础之上,还多了一个abstract修饰符。
在使用的时候抽象类与普通类也不一样:
普通类:可以通过new关键字实例化。
抽象类:不能使用new关键字来实例化。
**********抽象类********************
抽象类:是一个不能实例化的类,它可以具有抽象方法或者普通方法。
定义抽象类的语法与定义普通类类似,只是多了一个关键字abstract。
注意:
抽象类中可以定义抽象方法,也可以拥有普通方法,而普通类当中只能定义普通方法。
********对比抽象类与接口*************
**抽象类用abstract修饰符来定义,而且抽象类中可以有抽象方法,也可以有普通方法。
**接口是使用interface关键字来定义,关键字后面是接口名。
注意::定义接口的时候不再使用class关键字。同时,接口只能拥有抽象方法。
***从定义就可以看出抽象类与接口的区别:
1,抽象类使用abstract声明,接口使用interface声明。
2,抽象类除了抽象方法,还可以有普通方法,而接口中只能有抽象方法。
***两者的相同之处
抽象类与接口都不能被实例化。
*******接口的定义******************
接口就是一个不能实例化,且只能拥有抽象方法的类型,注意,这里说的类型不是类,因为接口不是使用class关键字来定义的,使用interface关键字来定义接口,接口当中只能拥有抽象方法。接口是针对行为(动作)而言的。
小常识:接口中不用使用abstract关键字修饰抽象方法,是因为接口中只能有抽象方法,所以不必专门使用abstract关键字进行修饰了。接口里的抽象方法必须是public修饰符修饰。因为接口里的方法就是共别的类来实现的。
**********使用抽象类与接口***********
抽象类的使用:可以通过继承来实现,也就是使用extends关键字,同时,继承了抽象类的子类,必须实现抽象类的抽象方法。
接口的使用:可以通过关键字implements(实现)来实现,同样的,实现了接口的类,必须要实现接口所有的抽象方法。
******抽象类与接口******
抽象类与接口的作用:
1,抽象类便于复用。
2,接口便于代码维护。
**抽象类的作用是:存放子类中公有的方法。
**为什么使用接口:通过多态方式,使用接口可以很好的隐藏代码细节,从而解决代码维护不易的问题。
**接口的好处是:便于代码的维护。接口实现类的变化,不会对接口的类产生任何影响。
*******面向对象设计的原则***********
面向对象设计的原则1:多用组合,少用继承。
面向对象设计的原则2:针对接口编程,不依赖于具体实现!
面向对象设计的原则3:针对扩展开放,针对改变关闭!这个的意思是,如果项目中的需求发生改变了,应该添加一个新的接口或者类,而不要去修改原有的代码。
***********总结*******************
抽象类:
1,使用abstract修饰符定义
2,可以拥有抽象方法和普通方法
3,抽象方法不能使用private修饰
接口:
1,使用interface关键字定义
2,只能拥有抽象方法
3,抽象方法只能使用public修饰
使用抽象类与接口要注意:
1,抽象类与接口不能实例化
2,继承抽象类或者实现接口的子类,必须
实现其中的抽象方法。
抽象类与接口的作用是:
1,抽象类便于复用
2,接口便于代码维护
面向对象设计的3个原则:
1,多用组合,少用继承
2,针对接口编程
3,针对扩展开放,针对改变关闭
学习抽象类与方法的建议:
1,理解为主
2,时时思考
3,学过一段时间,再回来看看
本文来源:https://www.2haoxitong.net/k/doc/3ebceade195f312b3169a5ad.html
文档为doc格式