zoukankan      html  css  js  c++  java
  • 多态,抽象,接口

    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。

  • 相关阅读:
    Adjacent Bit Counts(uvalive)
    UVALIVE 4556 The Next Permutation
    vector(实现存图)
    最大连续子序列和(模板)
    全选和反选
    .netCore上传图片,要用FormFileCollection ,不能用List
    .NET-Core中 HttpContext.Response.Write() 中文输出乱码
    Core中Cookie和Session的新用法
    Ajax反填
    复选框变成单选
  • 原文地址:https://www.cnblogs.com/buyanyu/p/7286277.html
Copyright © 2011-2022 走看看