面向对象的继承与接口

继承:
一、为什么会有继承?
JAVA中所有类都继承Object类。
多个不同的事物具有同一个属性或行为,将这些事物的特性抽取到一个类中加以应用。这就有了继承的方法。
二、继承基本格式。
class 类名 extends 父类名{}
extends 关键字,用来连接子类父类。
三、继承的好处和弊端。
好处:1.提高了代码的复用性和维护性。2、类与类之间产生关系。
弊端:开发的原则是高内聚,低耦合。继承使类的耦合性(类与类之间的关系)增强了。
四、继承的特点。
1、只支持单继承,不支持多继承。2、继承体系中可以有多继承(例如:三个类依次为祖孙三代)
五、继承的注意事项。
1、子类只能继承父类非私有的成员(成员方法和成员变量)
2、子类不能继承父类的构造方法
3、不要为了部分功能去继承。
六、this和super
this:代表本类对象的引用,访问本类的成员变量和方法时使用。
super:父类空间的标识,子类查询父类的成员变量和方法时使用。
七、继承中成员变量和成员方法的关系。
在子类中访问一个变量的查找顺序(就近原则)
子类局部范恩—子类的成员范围—父类的成员范围(都没有报错)
在子类中调用方法
子类查找—父类查找—(都没有报错)
八、方法重写。
当子类与父类出现了同样的方法声明(方法名,参数列表,返回值类型)子类需要父类的方法,但需要进一步完善,这个时候就需要重写方法具体内容,也称为方法覆盖。在书写时父类的私有方法不能被重写,子类方法的权限修饰不能比父类低。
九、抽象类。
不同事物具有相同功能,但具体实现不同这个时候就需要抽象类。
1、抽象类不一定有抽象方法,由抽象方法的类一定是抽象类。
2、抽象类不能直接实例化,需要按照多态的形式,具体的子类帮助实例化(多态:同一事物在不同情况下的不同状态,java中具体为父类接收子类)
书写格式:abstract class 类名{}
抽象方法格式:public abstract void 方法名();
面向对象的继承与接口
接口:
一、为什么存在接口?
同属性的的事物也具有不同的功能,为了体现事物的拓展性,就出现接口来定义这些功能。
二、接口的特点。
1、按照多态的形式实例化。
2、可以是抽象类,也可以是具体类,但要重写接口中的抽象方法。
三、书写格式。
关键字:interface接口名(){}
实现接口:class 类名implements接口名{}
四、接口的特点
1、成员变量:只能是常量,而且是静态的。
2、构造方法:接口没有构造方法。
3、成员方法:只能是抽象方法,默认修饰符:public abstract
五、类与接口的关系,接口与接口的关系
类与接口:实现关系。可以单实现,也可以说是多实现。一个类中还可以实现多个接口。
接口与接口:继承关系,可以单继承,也可以多继承。
六、抽象类与接口的区别。
1、抽象类的成员变量可以变量,也可以常量,有构造方法,成员方法可以抽象,也可以非抽象。接口的变量只能是常量,方法只可以抽象,而且没有构造方法。
2、类与类:继承,单实现。类与接口:实现,单实现,多实现。接口与接口:继承,单继承,多继承。
3、抽象类中定义的是一个体系所具有的共性功能。接口中定义的该体系的拓展功能。
共性:不能直接实例化,需要通过子类的具体的一个对象去实现。
面向对象的继承与接口