zoukankan      html  css  js  c++  java
  • JavaSE super,重载重写,abstract,final,多态

    super关键字的使用
    super和this的区别在于,this表示当前对象,super表示父类对象
    super.父类的属性 super.父类的方法
    super还可以用来调用父类的构造方法: super()
    在子类创建调用子类构造方法
    之前会先调用父类的构造方法,子类的构造方法的第一行隐式存在一个
    super(),super()无论是否带参都只能写在子类的构造方法的第一行
    不能在普通方法中调用父类的构造方法,包括本类的构造方法

    父子类加载顺序
    1.父类的静态成员、静态代码块
    2.子类的静态成员、静态代码块
    3.父类的普通成员、实例代码块
    4.父类的构造方法
    5.子类的普通成员、实例代码块
    6.子类的构造方法

    重载:overload,同一个类中多个方法方法名相同,参数列表不同
    与其他无关(访问修饰符,返回类型,抛出的异常等)

    重写:override ,覆写。发生在父子类之间,子类重写父类的方法
    要求方法名、返回类型、参数列表和父类一致,访问修饰符不能比父类
    的更为严谨

    重写的目的在于父类的方法不适用于所有的子类,但是子类也希望具有
    该功能,但是具体的实现需要改变。在重写后子类调用的就是子类本身
    重写后的方法,不再是父类中定义的方法

    java中很多地方都做了重写:object类中的equals方法


    abstract 抽象
    抽象关键字可以用来修饰类和方法

    abstract修饰的类称为抽象类,抽象类具有以下特征
    1.虽然有构造方法但是无法被实例化,无法通过new 类() 创建实例
    2.抽象类中可以有普通方法,还可以声明抽象方法
    3.抽象类中可以声明普通变量、静态变量、常量

    abstract方法
    1.抽象方法只能写在抽象类和[接口]中
    2.抽象方法没有具体的实现,没有方法体(也就是花括号)
    3.抽象类做为父类的时候,子类必须去重写父类中定义的抽象方法
    4.如果子类也是抽象类就可以不用必须重写父类的抽象方法

    final关键字,终态
    final可以用来修饰类、属性、方法
    final修饰的类无法被继承,String类就是final的
    final修饰的方法无法被重写
    final修饰的属性值不可变,只能赋值一次,并且如果是全局变量被
    final修饰一定要赋予初始值,如果是局部变量只能有一条赋值语句
    final修饰的如果是对象,对象不能指向新的地址,但是对象内的属性
    如果没被final修饰是可以正常改变的,final修饰的属性被称为
    常量,常量名需要全部大写


    多态 : 同一种事物的不同表现形式,重写和重载都是多态的体现之一

    满足多态的规则
    1.继承关系,子类继承父类
    2.子类重写父类的方法
    3.父类声明引用子类实例

    之前声明一个对象:类 对象名 = new 类名();
    多态的声明方式:父类类型 对象名 = new 子类类名();这种方式也被
    称为向上转型.向上转型能够访问父类的成员以及子类重写的父类的方法
    缺点是不能访问子类的成员

    如果要访问子类的成员,需要再向下转型,需要强转
    父类类型 父类对象 = new 子类类名();
    子类类型 对象名 = (子类类型)父类对象;

    结合instanceof关键字,这个关键字的用处是用来判断一个对象
    是否是某个类型,返回布尔值
    对象名 instanceif 类名

    多态可以用在方法的参数的多态,以及返回的多态上可以提升程序的
    灵活性
    多态的优势有很多
    1.屏蔽不同的子类实现细节
    2.让类与类之间解耦

    equals在没有重写之前比较两个对象的地址是否相等,重写以后按照
    重写的规则进行比较

  • 相关阅读:
    在 Tomcat 8 部署多端口项目
    tar -zxvf jdk-8u144-linux-x64.tar.gz
    linux下删除文件夹的命令
    springboot+mybatis案例
    阿里云主机密码
    查看公钥
    jenkins安装
    redis详解(包含使用场景)
    什么是JSONP?
    在CentOS7上面搭建GitLab服务器
  • 原文地址:https://www.cnblogs.com/beiluoL/p/10429092.html
Copyright © 2011-2022 走看看