你的位置:首页 > Java教程

[Java教程]Java之继承


①   如何继承一个类?
    extends关键字,子类在前父类在后

 修饰符 SubClass extends SuperClass { //类定义部分 } 
    
②   使用继承有什么好处?
    建立类之间的联系,增加了代码的复用性可维护性
    
③   如何通过super调用父类的属性,方法和构造方法?

  super代表对当前对象的直接父类对象的默认引用super必须出现在子类的方法和构造方法中
    super.属性名
    super.方法名()
    super() 构造方法
    
④   抽象类和抽象方法的特点是什么?二者是什么关系?
    特点:
    1、抽象类和抽象方法都通过abstract关键字修饰

   abstract class test { abstract void method(); } 
    2、抽象类不能被实例化。抽象类中可以没有、有一个或多个抽象方法,甚至全部方法都可以是抽象方法
    3、抽象方法只有方法声明没有方法实现。有抽象方法的类必须申明为抽象类。子类必须重写所有的抽象方法才能实例化,否则子类还是一个抽象类

  访问修饰符本类同包子类其他privateok   默认(friendly)okok  protectedokokok publicokokokok



⑥   方法重写必须满足的要求是什么?
    1、重写方法和被重写方法必须具有相同的方法名
    2、重写方法和被重写方法必须具有相同的参数列表
    3、重写方法的返回值类型必须和被重写方法的返回值类型相同或是其子类
    4、重写方法不能缩小被重写方法的访问权限

⑦   abstract关键字可以修饰什么?不能修饰什么?
    可以修饰: 类(抽象类)、方法(抽象方法)
    不能修饰: 属性、构造方法

⑧   它和哪三个关键字不能同时修饰一个方法或者类?
    private:子类无法继承到Private方法
    final:抽象方法是让子类重写,而final修饰的方法不能被重写
    static:static可通过类名直接访问,但无法访问一个没有实现的方法

⑨   final关键字可以修饰什么?不能修饰什么?
    可以修饰:类(不能被继承)、方法(不能被重写)、属性(常量)
    不能修饰:构造方法

⑩   在继承条件下构造方法的调用规则是什么?
    1、如果子类的构造方法中没有通过Super显式调用父类的有参构造方法,也没有通过this显式调用自身的其他构造方法,则系统会默认
        调用父类的无参构造方法
    2、如果子类的构造方法中通过Super显式调用父类的有参构造方法,则将执行父类相应的构造方法,而不执行父类无参构造方法
    3、如果子类的构造方法中通过This显式调用自生的其它构造方法,则在相应构造方法中应用以上两条规则
    4、如果存在多级继承关系,则在创建一个子类对象时,以上规则会多次向更高一级父类应用,一直执行到顶级父类Object类的无参构造方法为止

  注:1、在构造方法中如果有this语句或super语句,只能是第一条语句

    2、在一个构造方法中不允许同时出现this和super语句调用构造方法

    3、在类方法中不允许出现this或super关键字

    4、在实例方法中,this和super语句不要求是第一条语句,可以共存

◆   Object类的相关知识点?
    Object类是所有Java类的祖先。在定义一个类时,如果没有使用Extends关键字,那么这个类直接继承Object类,Object存在于lang包中
    java.lang.Object常见方法:equals(Object obj) 、 getClass() 、 toString() 、 hashCode() 、wait() 、 wait(long timeout)、wait(long timeout,int nanos)

 

访问修饰符