JAVA是面向对象的一种语言
面向对象编程有三大特征:封装、继承、多态。
继承:关键词(extends【扩展】)
语法格式:[修饰符] class 子类名 extends 父类名{//子类代码部分}
继承的特点:通过继承在已有类型基础之上进行扩充或改造,得到性的数据类型。
·已有的类型称为父类或超类
·得到的新数据类型,称为子类或派生类
·类的继承提高了程序代码的重用性和可扩充性,缩短了软件开发的周期。
继承分为单继承和多重继承
单 继 承:子类只能有一个直接父类
多重继承:子类可以有多个直接父类注意:java不支持多重继承!!
子类中可以另添加属性和方法
如果子类方法名(形参列表也相同)与父类中一样则父类方法被覆盖
规则:[两同两小一大]
· ·“两同”即方法名相同,形参列表相同;
· ·“两小”指的是子类方法返回值类型应比父类方法返回值类型更小或相等,子类方法声明抛出的异常类应比父类方法声明抛出的异常类更小或相等;· ·“一大”指的子类方法的访问权限应比父类方法更大或相等;
覆盖方法和被覆盖方法要么都是类方法,要么都是实例方法,不能一个是类方法,一个是实例方法。
如果需要在子类方法中调用父类被覆盖的实例方法,可以用super作为调用者来调用父类被覆盖的实例方法。
例:super.方法;super.属性;
要在子类中显式调用直接父类带参数的构造方法,可通过super()调用来实现。
注意:super调用和this调用很像,区别在于super调用的是其父类的构造方法,而this调用的是同一个类中重载的构造方法。因此,使用super调用父类构造也必须出现在子类构造执行体的第一行,所以this调用和super调用不会同时出现。正如this不能出现在static修饰的方法中一样,super也不能出现在static的方法中。
·子类不会继承父类的构造方法,但有的时候子类构造方法里需要调用父类构造方法的初始化代码。
·当通过子类构造方法创建子类对象时,默认的先执行父类不含参数的构造方法,再执行子类类构造方法。
面向对象编程有三大特征:封装、继承、多态。
继承:关键词(extends【扩展】)
语法格式:[修饰符] class 子类名 extends 父类名{//子类代码部分}
继承的特点:通过继承在已有类型基础之上进行扩充或改造,得到性的数据类型。
·已有的类型称为父类或超类
·得到的新数据类型,称为子类或派生类
·类的继承提高了程序代码的重用性和可扩充性,缩短了软件开发的周期。
继承分为单继承和多重继承
单 继 承:子类只能有一个直接父类
多重继承:子类可以有多个直接父类注意:java不支持多重继承!!
子类中可以另添加属性和方法
如果子类方法名(形参列表也相同)与父类中一样则父类方法被覆盖
规则:[两同两小一大]
· ·“两同”即方法名相同,形参列表相同;
· ·“两小”指的是子类方法返回值类型应比父类方法返回值类型更小或相等,子类方法声明抛出的异常类应比父类方法声明抛出的异常类更小或相等;· ·“一大”指的子类方法的访问权限应比父类方法更大或相等;
覆盖方法和被覆盖方法要么都是类方法,要么都是实例方法,不能一个是类方法,一个是实例方法。
如果需要在子类方法中调用父类被覆盖的实例方法,可以用super作为调用者来调用父类被覆盖的实例方法。
例:super.方法;super.属性;
要在子类中显式调用直接父类带参数的构造方法,可通过super()调用来实现。
注意:super调用和this调用很像,区别在于super调用的是其父类的构造方法,而this调用的是同一个类中重载的构造方法。因此,使用super调用父类构造也必须出现在子类构造执行体的第一行,所以this调用和super调用不会同时出现。正如this不能出现在static修饰的方法中一样,super也不能出现在static的方法中。
·子类不会继承父类的构造方法,但有的时候子类构造方法里需要调用父类构造方法的初始化代码。
·当通过子类构造方法创建子类对象时,默认的先执行父类不含参数的构造方法,再执行子类类构造方法。