继承 语法: 修饰符SubClass extends SuperClass{ //类定义部分 } 在java中,继承通过extends关键字来实现,其中SubClass称为子类,SuperClass称为父类,基类,或超类.修饰符如果是public,该类在整个项目中可见;不写public修饰符则该类只在当前包可前;不可以使用private和protected修饰符. 继承(Inheritance):是java中实现代码重用的重要手段之一.java中只支持单继承,即每个类只能有一个父类.继承表达的是isa的关系,或者说是一种特殊和一般的关系. 在java中,所有的java类都直接或间的接的继承了java.lang.long.Object类.Object类是所有java类的祖先.在定义一个类时,没有使用extends关键字,那么这个类直接继承Object类. 在java中,子类可以从父类中继承的有: Ø 继承public和protected修饰的属性和方法,不管子类和父类是否在同一个包里. Ø 继承默认权限修饰符修饰的属性和方法,但子类和父类必须在同一个包里. 子类无法继承父类的有: Ø 无法继承private修饰的属性和方法 Ø 无法继承父类的构造方法 如果从父类继承的方法不能满足子类的需求,在子类中可以对父类的同名方法进行重写(覆盖),以符合要求. 抽象出Dog类和Penguin类和父类Pet类(Pet类为抽象类,不能被实例化)
} 继承条件下构造方法调用规则如下 Ø 如果子类的构造方法中没有通过super显示调用父类的有参构造方法,也没有通过this显示调用自身的其他构造方法,则系统会默认先调用父类的无参构造 方法.在这种情况下写不写super()语句效果都是一样. Ø 如果子类的构造方法中通过super显示调用父类的有参构造方法,那将执行父类相应构造方法,而不执行父类无参构造方法. Ø 如果子类的构造方法中通过this显示调用自身的其他构造方法,在相应 构造方法中应用以上两条规则. Ø 特别注意的是,如果存在多级继承关系,在创建一个子类对象时,以上规则会多次向更高一级父类应用,一直到执行顶级父类Object类的无参构造方法为止.
abstract和final是功能相反的两个关键字,abstract可以用来修饰类和方法,不能用来修饰属性和构造方法.final可以用来修饰类,方法和属性,不能修饰构造方法.
|