zoukankan      html  css  js  c++  java
  • C#学习笔记7:多态是面向对象的三大特征(封装、继承、多态)之一

    多态:

    多态是面向对象的三大特征(封装、继承、多态)之一。

    什么是多态?

    一个对象表现出多种状态。

    多态的实现方法:

    1、虚方法;

    2、抽象方法;

    3、接口。

    PSNew 关键词可以隐藏父类的方法。

    实现多态的三中途径:

    1、虚方法:在父类方法中标记virtualvirtual 放在 访问修饰符后面,子方法加 overrideoverride放在访问修饰符后面。

    2、抽象类(不能被实例化):要抽象的类的访问修饰符后面和关键词class前加“abstract”,类里面的方法的访问修饰符后面,方法返回类型前面加“abstract

    抽象类的使用语法举例:

     Public abstract class Person

    {

    Public abstract void Eat();

    Public abstract void Speak();

    }

    抽象类的特点:

    如果一个子类继承了一个抽象类的父类,那么这个子类必须实现这个父类中的所有抽象成员,除非这个子类也是抽象的。

     

    3、接口

    关键词:interface

    接口中不能有字段,只有方法,而且方法不能有方法体。并且成员没有访问修饰符,但是默认的访问权限是public。(ps:类成员前如果不加访问修饰符,默认的是private

    接口的理解:接口侧重于一种能力。

    接口的注意点:

    如果一个类继承一个接口,那么必须实现这个接口所有成员。一个接口尽量只写一个方法,避免感染。

    接口能继承一个或者多个接口。但是接口不能继承一个或者多个类!类能继承一个或者多个接口(准确的说是类能实现一个或者多个接口)

    显示实现接口:void 接口名.方法名(默认的访问修饰符是private

    显示实现接口的目的 就是为了解决重名问题。

    如果一个类继承了一个父类和一个接口或者多个接口,父类需要放在第一位。

    接口的调用:

    接口名 接口对象=new 子类对象();

    接口对象.方法();

     

    思考问题:

    什么时候用虚方法和抽象类?

    1、当父类有必须实现并且必须要实例化的时候,用虚方法!

    2、当父类不需要方法实现,不需要实例化的时候,就用抽象类。

     

    什么时候使用接口?

    1、需要多次继承

    2、当某些类具有一种或者多种相同的功能,但是却不能把这些类提取出一个父类,这时候把这些功能写成一个接口。

    (除非注明,文章均为原创,欢迎转载,转载时请注明出处链接:智波生活 C#菜鸟笔记

     

     
  • 相关阅读:
    The .NET weak event pattern in C#
    Setting an Event to Null
    Android: INSTALL_FAILED_UPDATE_INCOMPATIBLE错误解决措施
    快速打开 Mac OS X 隐藏的用户资源库文件夹
    Complete uninstall on Mac, HELP!
    为什么MacBook装Windows这么火?
    mac 刻录ISO系统盘
    MySQL子查询慢现象的解决
    程序人生的四个象限和两条主线
    Xamarin.Android,Xamarin.iOS, Linking
  • 原文地址:https://www.cnblogs.com/zhibolife/p/3327966.html
Copyright © 2011-2022 走看看