抽象类
一.抽象类怎么定义?在class前面加abstract关键字就行了
二.抽象类是无法实例化的,无法创建对象,所以抽象类是用来被子类继承的
三.final和abstract同时使用,这两个关键字是对立的
四.抽象类的子类可以是抽象类,也可以是非抽象类
五.抽象类虽然无法被实例化,但是抽象类有构造方法,这个构造方法供子类使用
六.抽象类中不一定有抽象方法,但是抽象方法一定是在抽象类中
七.抽象方法的定义方法:public abstract void do();
八.一个非抽象类,继承抽象类,必须将抽象类中的抽象方法进行覆盖/重写/实现
接口
一.接口是一种“引用数据类型”
二.接口是完全抽象的
三.接口的定义方式:[修饰符列表] interface 接口名{}
四.接口支持多继承
五.接口中只有常量+抽象方法
六.接口中所有的元素都是public 修饰的
七.接口中抽象方法的public abstract可以省略
八.接口中常量的public static final可以省略
九.一个类可以实现多个接口
十.extends和implements一起,extends在前implements在后
十一.使用接口,写代码的时候,可以使用多态(父类引用指向子类)
接口在开发中的应用:
其实接口在开发中的作用,就像多态在开发中的作用!!!
仔细阅读下面这段话:
接口是特殊的抽象类,在java中很多例子,最为特色的例子就是:JDBC编程,数据库公司定义了接口,定义了一个规范,然后各子公司进行对接口的实现,你想用哪种就调用哪种;然后就是集合类,List接口规范了有哪些方法,然后ArrayList和LinkList进行实现。。。
接口就是什么,接口接口,USB接口,你只要连接插座那一端符合规定,另一端怎样实现都可以,接口就是降低耦合度!!! 都知道降低耦合度,但是降低谁和谁的耦合,降低的是:调用者和 实现者 的耦合,提高程序的扩展能力
例子:
两个厨师,中国和美国厨师:
拥有规定实现者的规范:(也就是顾客直接和经理对话,要求做成什么样的)
顾客类:
测试类:
运行结果:
就改变了两个创建对象就会发现实现了,就算再来一个厨师也可以加进去!!!
总结就是:解耦合,一个模块和一个模块之间就是接口协接起来的!!!