补充:
1、设计规则:
①:将派生类共有的属性和行为,抽到超类中(抽共性)
②:若派生类的行为/代码都一样,设计为普通方法
若派生类的行为/代码不一样,设计为抽象方法 abstract(抽象方法)
③:将部分派生类共有的行为/代码,设计为接口
接口是对继承单根性的扩展--------实现多继承
接口是一种标准、规范,若实现了某接口就具备某个功能,若不实现接口就不具备那个功能
2、不包含抽象方法的类也可以声明为抽象类,同样不能被实例化
一、抽象方法和抽象类
1、abstract修饰抽象方法
只有方法的定义,没有具体的实现
2、在类中出现抽象方法,就必须抽象类也用abstract修饰(包含抽象方法的类必须是抽象类)
3、抽象类是不能被实例化(new对象)
4、抽象类是需要被继承的,派生类有两种处理方法
①:也声明为抽象类
②:必须重写所有抽象方法
抽象类的意义:
抽象类一定是作为超类的
1、封装共有的属性和行为,实现代码复用
2、可以包含抽象方法,为所有派生类统一入口(名字统一),强制必须重写(为什么要设计抽象方法)
二、接口
1、是一种引用数据类型(目前学了:数组,类,接口)
2、由interface定义
3、只能包含抽象方法(常量、默认方法、静态方法、私有方法)
接口中的方法默认都是抽象的
4、不能被实例化。接口是需要被实现的,实现类:必须重写接口中的所有抽象方法
注意:重写接口中的方法时,必须加public
5、一个类可以实现多个接口(逗号隔开)。若又继承又实现,先继承后实现
6、接口可以继承接口
三、引用类型数组
数组元素为引用类型的数组,即为引用类型数组
与基本类型数组的两点区别:
1、给引用类型数组的元素赋值时,需要new个对象
2、访问引用类型数组元素的属性/行为时,需要打点调用
四、null:表示空,没有指向任何对象
若引用的值为null,则不能进行