zoukankan      html  css  js  c++  java
  • 面向对象(继承,重写,this,super,抽象类)

    继承
    定义一个类B时,发现已有类A与要定义的类B相似,并且类B属于类A的一种时,可以将类B定义为类A的子类。

    当多个类有着共性内容,可以将共性内容向上抽取,抽取到一个新的类中,这个新类和多个类形成一个关系叫做继承。
    子类继承父类后,自动拥有父类所有可继承的属性和功能。

    注意事项
    java只支持单继承,不支持多继承,支持多层继承。
    所有的类都直接或者间接继承了Object类,Object类没有父类
    构造方法不能被继承

    方法重写
    当子类继承父类后,自动拥有父类所有可继承的属性和功能。但是子类觉得父类方法不够强大时,可以对父类方法按照自身逻辑
    进行重写。 也叫方法复写,方法覆盖。
    注意事项
    1.可以使用 @Override检验是否为方法重写
    2.子类方法权限必须大于等于父类方法权限
    3.推荐和父类方法一样

    父类对象与子类对象的创建过程
    父类对象优先于子类对象产生
    当每次创建子类对象时,都会默认调用父类的空参构造,创建父类对象(不是new出来的对象)
    实际上是在子类对象中 创建了一个父类对象 因为子类要想父类的内容
    需要有这样一个父类的空间支持
    在子类的每一个构造方法的第一行都有一个默认的super()调用父类的空参构造
    super(参数) 调用父类的构造方法

    this和super
    this:本类对象的引用
    super:本类对象中父类的引用

    this和super
    this.属性名 访问本类成员变量
    this.方法名(参数) 访问本类其他方法
    this(参数) 访问本类其他构造方法(注意必须在构造方法的第一行使用)(了解即可)

    super.属性名 访问父类成员变量(非私有)
    super.方法名(参数) 访问父类成员方法(非私有)
    super(参数) 访问父类构造方法(非私有)(注意必须在构造方法的第一行使用)

    注意:
    this和super调用构造方法时不可以在同一个构造方法中同时使用,因为都需要定义在第一行。
    调用构造方法时,必须要保证有这个构造方法才能够调用,如果没有这个构造方法则不能调用。

    抽象类
    抽象方法:没有方法体的方法叫做抽象方法
    抽象类:有抽象方法的类必须是抽象类
    抽象类的使用
    1.抽象类不能创建对象
    2.定义子类继承抽象类
    3.子类重写父类方法
    4.创建子类对象 调用方法
    抽象类细节:
    1.抽象类可以没有抽象方法
    2.抽象类可以有具体的方法
    3.抽象类必须是一个父类
    4.子类必须重写所有抽象方法,否则子类也是一个抽象类
    5.抽象类有构造方法,子类需要使用构造方法为成员变量赋值
    抽象类出现的意义
    抽象类定义了一类事物最基本的属性和行为。强制子类必须实现其功能。子类必须重写其抽象方法
    抽象类的定义
    * 抽象类的定义
    * public abstract class 类名{
    *
    *
    * }

  • 相关阅读:
    父子项目
    生成资源文件时候,可以动态替换为maven属性
    生命周期阶段与插件目标任务绑定
    私服
    仓库
    DotNetBar教程
    SQL基础--> 约束(CONSTRAINT)
    jQuery.Autocomplete实现自动完成功能(详解)
    C# 解析JSON格式数据
    JSON 数据格式解析
  • 原文地址:https://www.cnblogs.com/caigq/p/6986003.html
Copyright © 2011-2022 走看看