• 多态,抽象,接口


    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。

  • 相关阅读:
    ASP.NET 4的Demo实践:URL“.NET研究”路由改进支持 狼人:
    在.NET Workflo“.NET研究”w 3.5中使用多线程提高工作流性能 狼人:
    Reg“.NET研究”exOptions.Compiled的含义和使用 狼人:
    ASP.“.NET研究”NET MVC3 on Mono的折腾(二):Linux(openSUSE)下的部署 狼人:
    C#编程笔记(一)“.NET研究” 狼人:
    Sh“.NET研究”arePoint开发笔记SharePoint2010添加ASP.NET应用程序 狼人:
    分享在MVC3.0中使用jQue“.NET研究”ry DataTable 插件 狼人:
    Silverlight 游戏开发“.NET研究”小技巧:血条和进度条 狼人:
    .N“.NET研究”ET中的异步编程(二) 传统的异步编程 狼人:
    不错的VS2010扩展——JSEnhancements,让js和c“.NET研究”ss也折叠 狼人:
  • 原文地址:https://www.cnblogs.com/buyanyu/p/7286277.html
Copyright © 2020-2023  润新知