​​‌‌​​​‌‌​‌​​‌‌‍​‌​‌‌‌​​‌‌‌‌​‌​‍​‌​​‌​​​‌​​​‌‌​‍​‌​‌‌​​​‌‌​​​​​‍​​‌​‌‌‌‌‌‌‌‌​​​‍​‌‌​​‌‌‌​‌‌​​‌‌‌‍​‌‌​​​‌‌‌​​​‌​‌‍​​‌‌‌‌‌‌‌‌​​‌‌‍​‌​​‌​​‌​​‌‌​​‌‍​‌‌​​​‌‌​​‌‌‌‌‌‍​​​​‌​​‌‌‌​‌​‌‌‍​‌‌‌​‌​​​‌​​‌‌‌‌‍‌‌​‌​​‌​‍‌‌​​‌​​​‍​​‌‌‌‌‌‌‌‌​​‌​‍​​​​​​​​‌‌‌‌​​‌‌‍​​​‌​‌​‌‌​​‌‌‌​‍‌​‌‌‌‌​​‍‌​‌‌​‌​​‍‌​​​​‌‌​‍‌​​‌​​‌‌‍‌​​‌​‌‌​‍‌​​‌​​​‌‍‌​‌‌​​‌​‍‌​‌‌‌‌​​‍​‌‌​​​‌​‌‌‌​​​‌‍‌‌​​‌‌​‌‍‌‌​​‌‌‌‌‍‌‌​​‌‌​‌‍‌‌​​‌‌‌‌‍‌‌​‌​​‌​‍‌‌​​‌‌‌‌‍‌‌​​‌​‌‌‍‌‌​‌​​‌​‍‌‌​​‌‌‌​‍‌‌​​‌​​​‍​‌​‌‌​‌‌‌‌​​‌​​‍​‌‌​​​​‌​‌​​​‌‌‍​​​​​​​​‌‌‌‌​​‌‌‍​‌​‌‌​​​‌‌​​​​​‍​​‌‌​‌​​‌‌‌‌​​​‍​‌​‌​​​‌‌​​‌‌‌‌‍​‌​‌​​​‌​‌‌‌‌‌‌‍​​​​​​​​‌‌‌​​‌​‌‍‌​​‌​‌‌‌‍‌​​​‌​‌‌‍‌​​​‌​‌‌‍‌​​​‌‌‌‌‍‌​​​‌‌​​‍‌‌​​​‌​‌‍‌​‌​​​‌‌‍‌​‌​​​‌‌‍‌​​‌‌‌​‌‍‌​​‌​​‌‌‍‌​​‌​​​​‍‌​​‌‌​​​‍‌‌​‌​​​‌‍‌​​‌‌‌​​‍‌​​‌​‌​​‍‌​​​​‌‌​‍‌​​‌​​‌‌‍‌​​‌​‌‌​‍‌​​‌​​​‌‍‌‌​‌​​​‌‍‌​​​‌‌​​‍‌​​‌​‌‌​‍‌​​​‌​‌‌‍‌​​‌‌​‌​‍‌​‌​​​‌‌‍‌​​​‌‌​​‍‌​​​‌​‌‌‍‌​​​‌​‌​‍‌​​‌‌​‌‌‍‌​​​​‌‌​‍‌​‌​​​‌‌‍‌​​‌​‌​‌‍‌​​‌‌‌‌​‍‌​​​‌​​‌‍‌​​‌‌‌‌​‍‌​​​‌‌​​‍‌​​​‌​‌‌‍‌​​​‌​‌​‍‌​​‌‌​‌‌‍‌​​​​‌‌​‍‌‌​​‌​​​‍‌‌​‌​​​‌‍‌​​‌​​‌​‍‌​​‌‌​‌‌

这一周的主要学习内容是Java的抽象类和接口。

抽象类是一个特殊的类,声明的时候需要在class前面加上abstrack关键字。抽象类里面可以有抽象方法也可以有普通方法,而抽象方法的特点就是声明时要加上abstract前缀,并且不能有方法体。

虽然抽象类里面可以有抽象方法也可以有普通方法,但是抽象方法只能存在于抽象类中。并且,抽象类不能被实例化成对象,只可以被继承,而继承抽象类的子类除非也是抽象类,否则必须实现之前声明的抽象方法。

接口某种意义上和抽象类很类似,同样不能用于实例化对象,包含一些抽象方法,但是还有很大区别。抽象类依然是一个类,声明的时候后面还是会跟上class关键字,而接口只需要interface关键字,因此接口不是一个类。抽象类之中可以有抽象方法也可以有普通方法,但是接口中只允许包含抽象方法,不过接口中的抽象方法可以隐式声明。另外一点就是接口中不能包含任何静态的对象,比如静态方法。

接口和抽象类的作用很多时候都是“定义规范”,画出框架。在java语言中,一个子类只能继承一个父类,不允许“多继承”,由于抽象类依然是一个类,需要使用extends继承关键字,而接口不是,接口使用的是implements实现关键字。Java允许“多实现”,一个类可以实现多个接口,这也等于侧面实现了“多继承”。


我正在学习的课程依然处于预科阶段,但是到五一之后就会正式开课,届时会把之前讲的知识点再次串讲一遍然后加速往后讲。所以之后讲到新知识之前大概就不会这样按周总结了。