继承:
格式:
public class 子类名 extends 父类名{ }
继承的作用:
子类继承了父类,就继承了父类的方法和属性,(私有属性、私有方法、构造器:有说继承的也有说没继承的)
因为private的封装性,子类无法只接调用继承父类的私有属性和方法,但可以在父类中提供public的方法间接访问
子类一样可以通过在父类中提供public的方法,间接调用父类的构造方法包括私有的构造方法
继承的好处:
1、提高代码的复用性,少写代码
2、提高代码的可维护性
3、让类与类之间产生了关系,提供了多态的前提
继承的特性:
一个类只允许继承一个父类,不能继承多个父类,这叫类的单继承
一个接口可以继承一个一个或多个接口,接口没有单继承的约束
注意:
一个类继承另一个抽象类,必须重写抽象类的所有抽象方法,否则必须定义为抽象类,(抽象类里面可能没有抽象方法,这时就不用重写)
实现:
格式:
public class 类名 implements 接口名{
实现的作用:
规定了实现类必须进行某些操作
实现的好处:
1、让类与接口之间产生了关系,提供了多态的前提
实现的特性:
一个类可以实现一个或者多个接口,避免了类单继承的局限性
注意:
一个类实现了一个接口,必须重写接口中的所有抽象方法,否则这个类必须定义为抽象类(接口里面可能没有抽象方法,这时就不用重写)
继承和实现的使用:
一个类和一个接口之间的关系只能是implements(实现关系):一对多
一个类和另一个类之间的关系只能是extends(继承关系):一对一
一个接口和另一个接口之间的关系只能是extends(继承关系):一对多