zoukankan      html  css  js  c++  java
  • 多态与final

    多态
    概述
    多态是继封装性,继承性之后,面向对象的第三大特性。
    定义
    多态:是指同一行为,具有多个不同的表现形式。
    前提
    1.继承或者实现[二选其一]
    2.父类的引用指向子类的对象[格式体系]
    3.必须有方法的重写[意义:不重写是无意义]
    多态的表现格式:
    父类类型 变量名 =new 子类对象;
    变量名.方法名();
    备注:父类类型指的是子类对象继承的父类类型,或者实现的父接口类型
    如果在使用多态方式调用方法时,首先检查父类当中的是否有该方法,如果没有,则编译报错,如果有则执行的时子类重写后的方法。
    多态的好处
    在实际开发中,父类类型作为方法的形式参数(实际参数),传递子类对象(实参)给方法,进行方法的调用,更能体现出多态的扩展性和便利性。
    访问类中成员变量有两种方式:
    1.直接通过对象名访问成员变量:看等号左边是谁,那么就优先用谁,如果没有继续往上找
    2.间接通过成员方法访问成员变量:看该方法属于谁,优先用谁,没有则继续往上找
    引用数据类型的转型
    多态的转型分为向上转型和向下转型两种
    向上转型:多态本身就是子类类型向父类类型向上转型的过程,这个过程是默认的,当一个父类引用指向了一个子类对象,便是向上转型。
    使用格式: 父类类型 变量名 =new 子类类型();
    向下转型:父类类型向子类类型向下转换的过程,这个过程是强制的,一个已经向上转型的子类对象,将父类的引用又转为子类引用,可以使用强制类型转换的格式,便是向下转型。
    使用格式:子类类型 变量名=(子类类型)父类变量名;
    转型的异常:在进行向下转换的过程中,一不小心就会出现java.lang.ClassCastException类型转换异常,为了避免这种类型转换异常的发生,java提供了instanceof关键字,给引用变量做类型的校验
    格式:变量名 instanceof 数据类型
    如果变量属于该数据类型,则返回true
    如果变量不属于该数据类型,则返回false
    fainal关键字代表最终的不可改变的
    常见的四种用法:
    1.可以用来修饰一个类
    2.可以修饰一个方法
    3.可以修饰一个局部变量
    4.可以修饰一个成员变量当 final关键字用来修饰一个方法的时候,这个方法就是最终方法,也就是不能被覆盖重写
    对于成员变量来说,如果使用final关键字修饰,那么这个变量也是不可改变的
    1.由于成员变量具有默认值,用final之后系统要求你必须手动赋值,不再有默认值了
    2.对于final的成员变量,要么使用直接赋值,要么通过构造方法赋值,二者之间2选其一
    3.必须保证类当中的所有的重载的构造方法,都最终会对final成员变量进行赋值
    使用接口时,需要注意的以下事项:

    1.接口是没有静态代码块也没有构造方法

    2.一个类只能直接继承一个父类,但是一个类可以实现多个接口

    ​ 一个接口可以继承多个接口,类于类之间是一种单继承关系,类与接口之间是一种多实现关系

    3.如果一个类实现了多个接口,存在重名的抽象方法,只需要重写一次抽象方法

    4.如果一个类没有重写接口当中的所有抽象方法,那么该类必须是抽象类

    5.如果一个类实现了多个接口,接口当中存在有重名的默认方法,那么实现类一定要对冲突的默认方法重写

    6.如果一个类直接继承了一个父类又同时实现了多个接口,父类当中的成员方法和接口当中的默认方法存在重名,优先调用父类当中的成员方法

  • 相关阅读:
    单工、半双工和双工通信
    Callable和Future
    有状态和无状态服务
    paxos协议
    OOP面向对象编程的三大特性
    php工厂模式
    php 观察者模式
    php的单例模式
    php是单继承还是多继承呢?
    MySQL—内连接join 和外连接 left join 区别 交叉连接 a,b cross joni union 联合
  • 原文地址:https://www.cnblogs.com/lulubenlei/p/14038930.html
Copyright © 2011-2022 走看看