• 08面向对象强化


    1、面向对象

    什么事面向对象?一种分析问题的方式,增强了程序的可扩展性

    面向对象三大特性:封装、继承、多态

    什么是类?什么事对象?类和对象的区别?

    是模子,确定对象将会拥有的特性(属性)和行为(方法)

    对象是一个能够看的到、摸得着的具体实体——万物皆对象

    类是模具,创建对象的模具,抽象的。对象是实体的,是类的具体实例。对象具有属性(特征)和方法(行为)

    • 类是一种数据类型,用户定义的数据类型
    • 类组成:字段、属性、方法、构造函数等

    类中包含了数据(用字段表示)与行为(用方法(函数、功能)表示,方法为一块具有名称的代码)

    关键字:this    当前对象        base    父类对象

     
    2、封装继承多态介绍
    封装
    • 属性封装了字段
    • 方法的多个参数封装成了一个对象
    • 将一堆代码封装到了一个方法中
    • 将一些功能封装到了几个类中
    • 将一些具有相同功能的代码封装到了一个程序集中(dll、exe)并且对外提供统一的访问接口。(属性名、方法名等)
     
    继承(是指类与类之间的关系)
    •  LSP里氏转换原则
    • 类的单根性继承性、传递性、继承时构造函数的问题(:this() :base())。构造函数不能被继承。
    • 所有类都直接或间接的继承自 object
     

    多态
        多态的作用:把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化

     
     
     
    虚方法,抽象方法
     
    关于虚方法需要注意的几点
    • 父类中如果有方法需要让子类重写,则可以将该方法标记为virtual
    • 虚方法在父类中必须有实现,哪怕是空实现(意思是必须有方法体)
    • 虚方法子类可以重写(override),也可以不重写
     
    关于抽象方法需要注意的几点
    • 需要用 abstract 关键字标记
    • 抽象方法不能有任何方法实现(不能有方法体)
    • 抽象成员必须包含在抽象类中
    • 由于抽象成员没有任何实现,所以子类必须将抽象成员重写
    • 抽象类不能实例化
    • 抽象类的作用:抽象类的作用就是为了让子类继承
    • 抽象类中可以包括抽象成员,可以包括有具体代码的成员
    • 还有抽象方法不能用 static 修饰
     
    接口
    • 接口中只能包含方法(属性、事件、索引器也都是方法
    • 接口中的成员都不能有任何实现
    • 接口不能被实例化
    • 接口中的成员不能有任何访问修饰符。(默认为public)
    • 实现接口的子类必须将接口中的所有成员全都实现
    • 子类实现接口的方法是,不需要任何关键字,直接实现即可
    • 接口存在的意义就是为了多态

    接口解决了类的多继承问题

    以后体积庞大的问题

    显式实现接口

     

    小总结

    五个访问修饰符

    • private    当前类中可以访问,类中成员的默认访问修饰符
    • protected    当前类及子类中可以访问(在继承中使用)
    • interna    当前程序集内部可以访问
    • protected internal    当前程序集或子类中(不同程序集也可以访问)
    • public    任何地方
    字段和属性及索引器
    添加引用和导入命名空间
     
    静态类

    静态类不能被实例化:abstract

    静态类不能被继承:    sealed

    sealed关键字,表示不能被继承。(密封类)

     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     





  • 相关阅读:
    建立自己的影响力
    在病房垒代码
    知乎确实不错
    不在乎你用到了什么技术,而在于你提供了哪些有价值的东西
    oschina上有不少好的项目
    我为何坚守Java?
    掌握了学习方法才能学到更多知识
    Jrebel实现Jetty 热部署
    互联网到底能干什么?我们还能干些什么?
    centos 阿里云 安装VNC Viewer
  • 原文地址:https://www.cnblogs.com/pirates/p/4550067.html
Copyright © 2020-2023  润新知