• 多态,抽象,接口


    2017-08-04

    多态

    某一个事物,在不同时刻表现出来的不同状态

    多态的前提:有继承关系,有方法重写,有父类引用指向子类对象

    多态的体现:继承方面,接口方面,抽象类方面

    多态的好处:提高了程序的维护性(由继承保证)

          提高了程序的扩展性(由多态保证)

    成员访问的特点:成员方法的访问:编译看左边,运行看右边

            成员变量的访问:编译看左边,运行看左边

            静态方法的访问:编译看左边,运行看左边

    多态的弊端:不能访问子类的特有功能

    多态的转型:向上转型:从子到父 父类引用指向子类对象

          向下转型:从父到子 父类引用转化为子类对象

          向上转型时:当调用成员方法时会调用出子类的方法,如果子类没有被调用的方法,则再去从父类找

                当调用成员变量时会调出父类的变量

                当调用静态方法时 ,可以用父类或子类的类名去调用静态方法,也可以用创建出来的对象调用静态方法,是调用父类的

                子类特有的类是调不出来的

          向下转型时:可以调用父类特有的方法

                当调成员方法时,如果子类中没有这个方法则会调父类的,如果有的话,则调用子类的,

                调用成员变量,调用静态方法也是一样的

    抽象类

    抽象类和抽象方法必须用abstract关键字来修饰

    格式:abstract class 类名 {}

       public abstract void  方法名();

    抽象类不一定要有抽象方法,但抽象方法一定要写在抽象类中

    抽象类不能实例化,但能按照多态的方式,由具体的子类实例化,这是多态的一种,抽象多态

    抽象类的子类:要么是抽象类,要么重写抽象类中的所有抽象方法 ,如果抽象类也有它的抽象父类,抽象父类中的方法也会被实现

    abstract 关键字与private , final ,static 关键字冲突

    接口

    用关键字 intreface 声明 : interface 接口名{}

    类实现接口用implement:class 类名 implement 接口名{}

    接口不能实例化,但能按照多态的方式,由具体的子类实例化,这是多态的一种,接口多态

    单继承【类与类】;多继承【接口与接口,逗号隔开】;多实现【类和接口,逗号隔开】

    接口的子类:要么是抽象类,要么重写接口中的所有抽象方法 ,如果接口也有它的接口父类,接口父类中的方法也会被实现

    接口中的所有方法都是抽象方法,可以不加abstract关键字,默认的就是抽象的;成员变量都是静态常量,可以不加static final关键字,默认的就是静态常量

    接口中的权限修饰符只能是public

    如果接口1继承了接口2(接口和接口之间只能继承),则接口1的子类也要实现接口2中未实现的方法

    如果类已经实现了接口2,接口1,则接口1不能再去继承接口1。

  • 相关阅读:
    教你Python3实现12306火车票自动抢票,小白必学
    Spring Security 中如何快速查看登录 IP地址等信息?一招搞定
    方程组及其解的判定
    向量空间
    极大无关组和向量组等价
    向量组的线性相关与线性无关
    向量间的线性关系
    向量的概念和运算
    矩阵的秩和秩的性质
    利用初等变换求逆矩阵和解矩阵方程
  • 原文地址:https://www.cnblogs.com/buyanyu/p/7286277.html
Copyright © 2020-2023  润新知