子类和继承(super、访问权限修饰符、多态的转型、final)


  • 任何类都是Object类(java.lang包中的类)的子孙类。
  • 子类和父类在同一个包中:不继承private成员变量和private方法。
  • 子类和父类不在同一个包中:不继承private和友好访问权限的成员变量和方法。
  • 其他类对象若访问某个类继承的protected成员变量或protected方法,需追溯到声明该protected成员变量和方法所在的“祖先”类,若在同一个包中可访问,若不在不可访问。
  • boolean:对象+instanceof+类。
  • 子类隐藏继承的成员变量:子类对象及子类自定义方法操作的是子类重新声明的成员变量,子类继承的方法操作的成员变量是子类继承或隐藏的成员变量。
  • 方法重写:方法的名字、参数个数、参数类型完全相同,方法的类型一样或是父类方法类型的子类型(方法的类型是“类”),访问权限不允许降低。

   目的:隐藏继承的方法。

  • 重写方法可操作继承的成员变量和方法,也可操作子类新声明的成员变量和方法,但调用被隐藏的方法或成员变量要使用super。
  • this和super的区别:this指向本类对象,而super指向父类对象。
  • 子类不继承父类的构造方法,super必须是子类构造方法中的头一条语句。(默认有super();)
  • 如果类里定义了一个或多个构造方法,那么Java不提供默认的无参数构造方法。
  • final修饰:①类:不允许成为父类(不允许扩展,如String类)

        ②方法:不允许子类重写(不允许隐藏:重写)

       ③成员变量或局部变量:作为常量,声明时必须赋值

  • 上转型对象:将子类对象的引用放到父类的对象中。
  • 上转型对象不能操作子类新增的成员变量(属性)和新增方法(行为),可访问子类继承或隐藏的成员变量和继承或重写的方法。(可强制转换成子类对象)(如果子类重写的是父类的静态方法,则调用父类的静态方法)
  • 不可将父类对象的引用赋值给子类对象。
  • abstract修饰:①类(抽象类):类中可有abstract方法,非abstract类不可以有abstract方法。

         ②方法(抽象方法):不可用static修饰abstract方法,只允许声明(无方法体)。

  • static方法只能被继承,不能被重写(可以覆盖,但不是多态)。
  • 不可用final和abstract同时修饰一个类或方法。
  • 不可用new创建abstract类对象,但可以声明对象并成为其子类的上转型对象。
  • abstract类的子类:①abstract类:可以重写或继承父类的abstract方法。

           ②非abstract类:必须重写父类的abstract方法,给出方法体。

  • static只能修饰方法、变量和内部类。
  • 面向抽象编程目的是为了应对用户需求的变化。
  • 面向抽象编程的核心是让类中每种可能的变化对应地交给抽象类子类负责。
优质内容筛选与推荐>>
1、手机号显示*
2、数据库中CHAR与VARCHAR之争
3、电影“我是谁,没有绝对安全的系统“——黑客技术点评
4、我的作业
5、python基础(内置函数+文件操作+lambda)


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号