zoukankan      html  css  js  c++  java
  • 面向对象封装继承多态

    面向对象

     OOP三个特点:继承  封装  多态

    面线对象,面向世间万物,面向各种业务结构。

    封装

     封装就是对一些事物行为属性的私有隐藏 共有展示,细节隐藏 功能展示。保护细节 私有成员,实现功能模块化。

    子类可以用于父类一切的属性和行为。任何父类出现的地方子类都可以替代。

    封装变化,降低耦合,软件实体扩展,而不是修改,也就是开放闭合原则。

    继承

    1、提高代码的重用性,以及代码结构性。

      继承之后将会拥有父类的行为和属性(在可见范围之内),更加符合客观世界规律。

      里氏替换原则:所有父类出现的地方都可以无缝的用子类替换。

    2、this    继承的时候在子类中,指当前类

      base  继承的时候在子类中,指父类

    3、new(属性  方法)

      子类同名方法属性会隐藏父类的同名方法属性,如果不写new修饰符会提示如下警告

      警告 CS0108 “Teacher.CreateID2”隐藏继承的成员“People.CreateID2”。如果是有意隐藏,请使用关键字 new。 MyAbsInt E:ProgectC#MyAbsIntMyAbsIntEntityTeacher.cs 17 活动。

      注意这个只是警告。即使不加new他也会隐藏的。

    4、object是一切类型的父类。

      子类继承父类的属性 方法,任何父类出现的地方都可以用子类替代

    5、C# 语言中是单继承,但是接口可以多继承(一直想不明白为啥单继承,一个人还有爸爸妈妈呢,对于单继我的个人理解:也可能是考虑到最原始的单细胞生物,一个变两个这种繁殖方式。单细胞生物还可以进化为多细胞,高级动植物。)

    6、OO开发范式大致为:划分对象→抽象类→将类组织成为层次化结构(继承和合成) →用类与实例进行设计和实现几个阶段。

    7、关于抽象,C#中关键字abstract,抽象类不能被实例化,只能被继承。但是抽象类可以继承class   interface  abstract类型。

    8、关于接口,记得上学的时候老师说,默认的认为接口是抽象的,接口里面的方法是公共 抽象的,所以接口方法不加public。其实编译为中间语言他就是这样的(但是还加的有别的修饰)。

    9、虚方法,是有实现体的方法(抽象方法是没有的),子类如果有相同的方法  可以使用override或者new修饰符修饰。             override会覆盖父类方法,把父类赋给父类,父类表现的是子类的方法(这个是多态)           new则是隐藏父类成员

    10,、覆盖(覆写)与重载(重写):方法重载就是方法名字一样参数不一样和返回值没有关系。(如果参数一样,方法名字一样。但是返回值不一样,编译器认为是同一个函数  提示报错)

    多态

    同一方法不同类型对象(同一父类)中表现不同行为

    就是要通过覆盖override,能用覆盖的有抽象方法    虚方法       接口。但是最好用抽象类,

    代码下载

  • 相关阅读:
    做程序员,我骄傲了吗?
    乐字节Java面向对象三大特性以及Java多态
    Java为什么有前途?什么人适合学Java?
    Java新手从入门到精通的学习建议
    Java变量与数据类型之二:Java常量与变量
    模块化、结构化的代码,程序员正讲述着人生
    乐字节Java变量与数据类型之一:Java编程规范,关键字与标识符
    乐字节Java学习课程-path环境变量的作用与配置
    我英语不好,能学会编程吗?
    为什么欧拉图要用栈存然后逆着输出
  • 原文地址:https://www.cnblogs.com/wudequn/p/6719945.html
Copyright © 2011-2022 走看看