1.继续面向对象

  面向对象的三大特征:

  封装、继承、多态

  封装:隐蔽代码实现,代码复用,修改方便。

  继承:

  多态:

  2.什么是类?什么是对象?类和对象的区别?

  类是一种数据类型,用户自定义的数据类型。 是针对具体存在的一种描述。

  类的组成:字段,属性,方法,构造函数。

  对象是具体的。是类的具体实例。对象具有属性和方法。 按照类的描述来创建一个可供我们使用的实例。

  类只占一块内存,每个对象单独占用一块内存。 对象可以叫做类的实例(Instance)

  3.构造函数的作用?

  主要是为了方便程序员在实例化(new)对象的时候就为对象里的一些属性字段初始化赋值。

  <--构造函数-->

  (1)访问修饰符一般情况下是public

  (2)没有返回值类型

  (3)方法名和类名相同

  (4)在该类被new的时候(实例化)调用

  (5)用户自定义的类中,如果没有用户定义的任何一个构造函数。那么CLR将在程序运行的时候自动添加一个无参的构造函数给对象

  也就是说:一旦用户自定义的类中包含了一个或多个构造函数(不管有没有参数的),那么CLR将不在自动添加。

  4.属性

  属性的本质就是两个方法,get和set。

  属性就是为了设置访问和修改成员变量值的规则。

  如果属性里只定义了get代码块,则该属性叫做只读属性。

  如果属性里只定义了set代码块。则该属性叫做只写属性。

  代码:

  public class Person

  {

  private string _name;

  public string Name

  {

  get{return _name;}

  set{_name=value;}

  }

  private int _age;//属性存在的目的就是为了设置访问和修改成员变量值的规则。

  public int Age

  {

  get{return _age;}

  set

  {

  if(value>=0&& value<=120)

  {

  _age=value;

  }

  else

  {

  _age=18;

  }

  }

  }

  }

  5.GC垃圾回收器

  垃圾回收器定时检查堆内存,一旦发现没有被引用的对象,就立即销毁它。

  6.静态成员

  CLR加载程序集里的类信息,发现有静态成员,则直接添加到[静态成员表]中,整个程序集内都可以访问这个表里的静态成员。

  7.里氏替换原则

  当存在继承关系时,如果声明的是父类,则堆中对象保存的类型指针为父类,那么调用的时候就会执行父类的成员。

  如果调用的成员,父类中没有,那么程序会报错。因为父类的类型指针只会去找父类的成员,找不到,没有,就会报错。

  8.继承

  (1)、因为子类继承了父类,所以子类对象能够调用父类对象里所有的非私有成员。

  (2)、当存在继承关系的时候,子类的this同时可以指向父类的非私有成员。base就存在于子类对象里,用来指向父类的指针。

  (3)、继承的单根性:一个类只能继承一个父类。

  传递性:子类获得父类所有的非私有成员。

  (4)、子类默认调用父类无参的构造函数

  (5)、类的访问修饰符默认就是internal,(程序集内共享,也就是项目内部共享)

  类的成员变量,访问修饰符默认是private

  (6)、不能将父类对象强制转换成子类对象

  (7)、当创建一个子类对象的时候,如果声明的是父类对象,那么只能调用父类中的方法。

  当创建一个子类对象的时候,如果声明的是子类对象,那么先看子类中的方法,有则调用,没有则去父类中寻找,如果有则调用。

  9.简单工厂方法

  最关键的是应用了里氏替换原则,及子类重写父类的技术,它能让代码开发者不关心某个具体相关业务的实现,而只关心自己要实现的业务代码的编号。

  10.多态

  多态就是用某个子类来实例化父类,调用父类的抽象方法或者虚方法,但实际上执行的是子类实例重写的方法。

转载于:https://blog.51cto.com/net5x/1584822

1.C#.Net面向对象基础知识点相关推荐

  1. 计算机知识必备,小结||计算机基础知识点十(必备)

    原标题:小结||计算机基础知识点十(必备) 451.数据库管理系统主要功能: (1)数据定义功能 (2)数据操纵功能 (3)数据库的运行管理 (4)数据库的建立和维护功能 452.数据库不仅要反映数据 ...

  2. python 注释一段话_干货!Python入门基础知识点总结

    或看好Python的广阔前景,或看中Python的语法简洁,越来越多零基础的人选择学Python.但是Python基础知识有哪些呢?且看我的分析. Python部分基础知识点汇总 数据类型:编程中操作 ...

  3. java重要基础知识点_java基础知识点整理

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 java基础知识点整理1.&和&&的区别? &:逻辑与(and),运算符两边的表达式均为true时,整个结果才为true. ...

  4. 程序设计语言基础-知识点

    程序设计语言基础-知识点 程序设计语言就是人类跟计算机沟通的语言 分类 1.高级低级之分 高级 c/c++,java 等 低级 机器语言 汇编等 2.工作方式之分 编译程序:编译成目标程序后再执行.c ...

  5. 百度 java基础_java基础知识点整理

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 java基础知识点整理1.&和&&的区别? &:逻辑与(and),运算符两边的表达式均为true时,整个结果才为true. ...

  6. java基础教程知识点,[Java教程]js基础知识点总结

    [Java教程]js基础知识点总结 0 2016-11-01 21:00:04 如何在一个网站或者一个页面,去书写你的js代码: 1.js的分层(功能):jquery(tool) 组件(ui) 应用( ...

  7. java基础知识点(1)——计算机的基础-计算机语言

    和小学妹一起学java java的基础知识 学科介绍 一.计算机的基础知识 1.计算机基础 2.编程语言 3.进制 4.字节 5.命令行的交互 二.Java语言概述 1.Java语言的简介 2.跨平台 ...

  8. java三次登录锁定_Java基础知识点有哪些 如何快速步入Java行业

    Java基础知识点有哪些?如何快速步入Java行业?作为目前应用最广泛的编程语言之一,Java吸引了大量的人学习加入.Java编程是一门面向对象编程语言,具有简单易用.功能强大的特点,是目前互联网行业 ...

  9. python describe函数_Python基础知识点梳理2,推荐收藏

    接着昨天的基础知识点继续梳理,昨天的 Python基础知识梳理1 8.函数 1.定义函数: 使用关键字def来告诉python你要定义一个函数 接着指出函数名:如下面函数名是-greet_user ( ...

最新文章

  1. Generation Language GL
  2. C/C++在Android开发中的应用
  3. C语言中函数如何返回结构体?
  4. 为什么多个线程不可能同时抢到一把锁_分布式为什么一定要有高可用的分布式锁?看完就知道了...
  5. SpringBatch 多线程(TaskExecutor)启动Job详解 (七)
  6. [转]Mogre 环境配置问题(Exception from HRESULT: 0x800736B1)
  7. Yii2的MVC新特性
  8. 数据结构与算法--图论-深度优先搜索及其应用
  9. 为ESXI 添加ISCSI存储设备 Linux服务器系统
  10. 点击图片添加文件在Chrome中使用的兼容问题
  11. ES6学习笔记二 新的声明方式和变量的解构赋值!
  12. Ubuntu系统(四)-修改主机名和配置DNS上网
  13. COCOS2D-X编译成android的项目
  14. CC1101魔幻的收发切换机制
  15. MYSQL生成日历表,通常在做报表的时候需要用来生成一个临时表,用来左连接等。...
  16. 基于cat12搞定VBM的ROI分析——vertex水平和ROI水平的双样本T检验
  17. 利用docker maven镜像打包springboot
  18. 什么是零信任?零信任的好处有哪些?
  19. 多文件自平衡云传输(三)节点选择和资源分配 —————— 开开开山怪
  20. 亚马逊AWS使用计费问题

热门文章

  1. 出现梯度消失与梯度爆炸的原因以及解决方案
  2. Mybatis异常There is no getter for property named ‘XXX‘ in ‘class java.lang.String‘
  3. 如何在Mongoose中更新/更新文档?
  4. Windows linux子系统安装mysql
  5. win11打开应用被管理员阻止怎么办 window11管理员已阻止你运行此应用的解决方法
  6. myBatis的xml映射文件中传入list集合与数组做条件
  7. windows安装docker后启动报错无法下载镜像文件Error with pre-create check: “Get https://github-production-release-ass
  8. SpringMVC控制类的Controller方法返回值
  9. c++ string 长度限制_面试中要会的String相关问题
  10. 圆弧构型机器人轮直径校准