目录
- 抽象类和接口
- 抽象类
- 接口
- 引用类型数组
抽象类和接口
抽象类
设计准则:
讲派生类中共有的属性和行为,抽到超类----抽共性
若派生类的行为/代码都一样,设置为普通方法。如果不一样则设置为抽象方法。
什么是抽象方法呢?
抽象方法指的是只有方法的定义且通过abstract关键字来修饰,没有具体的实现(连{})都没有
在例子中我们定义一个抽象类Animal,
public abstract class Animal{
String name;
int age;
String color;
Animal(){};
abstract drink();
}
例如上述的drink方法就是抽象方法,还有一些细节要注意,抽象类不能被实例化,因为它并不完整,单独存在并没有意义。比如从逻辑上来说动物这个类是集合了动物的一些共同特征与行为,从现实逻辑来说并不能说是一个实体。
为什么要设置抽象类,我们要知道真实的项目都是要团队完成的,如果不设计抽象方法,当张三需要设计一个鱼类时候,他设计了eat()方法来表示吃,而李四设计的狗类的吃的方法是ate(),更有王五设计猫类时候使用了have,当有人想要让这三种动物时候,需要记住这三个名字与动物的对应关系,非常麻烦。但是当我们设计了抽象类与抽象方法之后,我们只需要在每个类中重写抽象方法即可。
抽象类必须被继承,当我们定义一个类继承抽象类时候,我们有两种方式,第一种把抽象方法都重写,第二种我们将该类也设置为抽象类,否则要报错。
接口
接口就是将派生类的部分共有的行为抽到接口中,接口是可以多继承的,可以同时继承多个接口(需要通过,来分割 )。
接口通过interface来定义,当然接口也可以实现继承,接口通过implement来实现。当接口与继承同时存在的时候,继承要写在前面。当我们在重写接口方法时候,必须要先加public。
引用类型数组
引用类型数组就是数组内元素为引用类型的数组 。当我们在给引用类型数组赋值时候,需要使用new关键字,再访问引用类型数组的属性或者行为时候,需要想携带.访问。