4月17号学习总结

一、抽象和接口

① 抽象

1.抽象类中可以没有抽象方法,但包含了抽象方法的类必须被定义为抽象类;
2.如果子类没有实现父类的所有抽象方法,子类必须被定义为抽象类;
3.Java中没有抽象构造方法,也没有抽象静态方法;
4.抽象类中可以有非抽象的构造方法,创建子类的实例时可以调用

②接口

接口是用来解决java里面单根继承的缺陷,一个类里可以实现多个接口,用 关键字 implements 来连接多个接口用逗号分隔

如:       public class  common implements NetWork,PalyVideo { } //这里的NetWork,PalyVideo是接口

创建接口 public interface PalyVideo { }      //interface 关键字可以直接创建接口,也可创建类 把class改为interface


接口使用

1.接口中的方法默认都是 public abstract 的;

2.接口没有构造方法,不能被实例化;
3.一个接口不能实现另一个接口,但可以多个其他接口;
4.一个类必须实现接口抽象方法,除非这个类也是抽象类;
抽象类VS接口

抽象类与子类符合:is a  的关系如:防盗门是一个门

接口与子类符合: has a 的关系如:防盗门有一个锁,有防盗的能力


相同点
1.代表系统的抽象层
2.都有不能被实例化
3.都能包含抽象放法 用于秒数系统提供的服务,不必提供具体实现
不同点
1.在抽象类中可以为部分方法提供默认实现,而接口中只能包含抽象方法(抽象类便于代码复用,接口便于代码维护)
2.一个类只能继承一个直接父类,但可以实现多个接口
使用原则
1.接口做系统与外界交互的窗口,接口提供服务 (接口是一种能力,一种规范)

2.接口本身一旦制定,就不允许随意修改
3.抽象类可以完成部分功能实现,还有部分功能可作为系统的扩展点

小结

1. Java中的接口
(1)属性全部是全局静态常量
(2)方法全是全局抽象方法
(3)无构造方法

2.一个类可以实现多个接口,非抽象类实现接口时必须实现接口的全部方法

3. 抽象类便于代码复用,接口便于代码维护

猜你喜欢

转载自blog.csdn.net/chenjingqi101/article/details/79987450