继承特性

继承是Java中核心技术之一,是通过对已存在的类进行功能扩展,添加一些新的方法和属性,以满足新的需求。以下是对继承进行一些说明:

  • 使用情景:类与类之间满足 is-a 的关系。

  • 类命名格式:子类 extends 超类

  • 构造方式:调用子类构造器时,会默认调用超类的无参构造super()(如超类缺少无参构造,则报错),也可以显式调用各种构造器。

  • 属性继承:子类可以继承父类的属性,但是在使用时要考虑权限,如私有属性不能直接调用,需要借助公有的接口super.getXx()获取属性值

  • 动态绑定:当子类覆盖(override)了父类的方法时,在调用子类方法时会编译器自动判断需要调用哪个方法过程如下:

    1. 搜索 子类中同名的方法 和 父类中属性为public的同名方法
    2. 匹配参数类型:由于参数允许类型转换,所有在匹配时有不同的优先级,首先寻找最精确的类型,然后先子类后父类搜索该方法。
  • 注意事项:子类方法返回值可以相同,或者更加精确,并且可见性不能低于父类。

  • 强制类型转换:将指向父类的子类对象,变为指向子类的子类对象,如:

Object obj = new String("hello");

if(obj instanceof String){  //检测obj是否是String对象

    String s = (String) obj;

}

你可能感兴趣的:(继承特性)