大家好,我叫李京阳,,很高兴认识大家,之所以我想开一个自己的博客,就是来把自己所了解的知识点通过自己的话写一下,希望被博客园的朋友们点评和一起讨论一下,也希望从博客园中多认识一些软件开发人员!现在我开始讲一下面向对象的一点知识,请你们多多点评和讨论!!


1. 继承的目的: 子类希望得到父类中的成员,而不自己去亲自定义.
          给大家看张解析继承的图理解一下,嘻嘻:


          2. 继承的语法:
             a. 在子类的类名后面写1个冒号再跟上父亲类的名字.
                class Student:Person
                {
                 
                }
             b. Student类从Person类继承,Student类是Person类的子类.Person类是Student类的父类.
                Student类从Person类派生,Studnet类是Person类的派生类,Person类是Student类的基类.

     class Student:Person
{ public string StuNo { get; set; } public void Test()
{
this.Height = ;
}

3. 子类从父类继承,那么子类就拥有父类的全部成员.
         
          4. 继承是类的继承, 而不是对象的继承.
             子类从父类继承,就相当于在 子类的模板中 拥有类父类的所有的成员.
             在创建子类对象的时候,仍然是根据子类模板来创建的,只不过这个子类模板中拥有了父类的成员.
             所以我创建1个子类对象 这个子类对象中拥有子类的成员和父类的所有成员.
         

  class Person
{ public string Name { get; set; }
private int Age { get; set; }
internal bool Gender { get; set; }
protected double Height { get; set; } public void SayHi()
{
this.Height = ;
Console.WriteLine("年龄:" + Age);
}
}
     class Student:Person
{ public string StuNo { get; set; } public void Test()
{
this.Height = ;
}

5. 子类从父类继承,子类就可以拥有父类的全部成员吗?
             a. 在子类中,可以访问父类的public和internal 不能访问private
            
             b. 子类从父类继承,那么子类模板中就拥有了父类模板中的所有成员,包括私有成员.
                在创建子类对象的时候, 因为子类对象是根据子类模板创建爱的,所以子类对象中自然也就有父类的私有成员.
                只不过父类的私有成员 在子类的内部无法访问,但是它却真实的存在.
         
             c. 类的成员的访问修饰符
                public: 可以在任意的地方访问.
                private: 只能在类的内部访问
                internal: 可以在当前程序集中访问   
                protected: 可以在本类和本类的子类中访问.

         public string Name { get; set; }
private int Age { get; set; }
internal bool Gender { get; set; }
protected double Height { get; set; }

d. 子类从父类继承,子类模板中就拥有了父类模板中的所有成员,包括私有的.
                只不过在子类的内部只能访问父类的 非私有成员.
                                 
          6.   静态成员也是可以继承的,只不过无论通过父类去访问还是通过子类去访问 访问到的都是同1个静态成员.
               子类和父类共享1个静态成员.静态成员仍然只存在1份.

7.  继承的好处:
              a. 减少代码的冗余.
              b. 修改维护极为方便.
              c. 为了多态.

面向对象(基础oop)之初识继承的更多相关文章

  1. JS--我发现,原来你是这样的JS:面向对象编程OOP[3]--(JS继承)

    一.面向对象编程(继承) 这篇博客是面向对象编程的第三篇,JS继承.继承顾名思义,就是获取父辈的各种"财产"(属性和方法). 怎么实现继承? 我们的JavaScript比较特别了, ...

  2. 面向对象(基础oop)之继承总结

    大家好,我叫李京阳,,很高兴认识大家,之所以我想开一个自己的博客,就是来把自己所了解的知识点通过自己的话写一下,希望被博客园的朋友们点评和一起讨论一下,也希望从博客园中多认识一些软件开发人员!现在我开 ...

  3. 第二十七节:Java基础面向对象-静态,单例模式,继承详情知识点

    前言 Java基础面向对象-静态,单例模式,继承详情知识点.静态-static关键字,static变量,静态代码块,代码块(不加静态),对象创建过程,单例模式,继承. 静态-static关键字 // ...

  4. python 全栈开发,Day19(组合,组合实例,初识面向对象小结,初识继承)

    一.组合 表示的一种什么有什么的关系 先来说一下,__init__的作用 class Dog: def __init__(self, name, kind, hp, ad): self.name = ...

  5. Java学习 · 初识 面向对象基础一

    面向对象基础 1.1面向过程与面向对象的区别 面向过程和面向对象二者都是思考问题的方式,再简单的事物时,可以线性思考时使用面向过程,但当事物较为复杂时,只能使用面向对象设计.但二者并不是对立的,在解决 ...

  6. 081 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 06 new关键字

    081 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 06 new关键字 本文知识点:new关键字 说明:因为时间紧张,本人写博客过程中只是 ...

  7. 080 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 05 单一职责原则

    080 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 05 单一职责原则 本文知识点:单一职责原则 说明:因为时间紧张,本人写博客过程中只是 ...

  8. 079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象

    079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象 本文知识点:实例化对象 说明:因为时间紧张,本人写博客过程中只是对知 ...

  9. 078 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 03 创建类

    078 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 03 创建类 本文知识点:创建类 说明:因为时间紧张,本人写博客过程中只是对知识点的关 ...

  10. 077 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 02 类和对象

    077 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 02 类和对象 本文知识点:类和对象 说明:因为时间紧张,本人写博客过程中只是对知识点 ...

随机推荐

  1. 如何建立git 远程仓库

    第1步:创建SSH Key.在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步.如果没有,打开Shell ...

  2. [bzoj3123] [SDOI2013]森林 主席树+启发式合并+LCT

    Description Input 第一行包含一个正整数testcase,表示当前测试数据的测试点编号.保证1≤testcase≤20. 第二行包含三个整数N,M,T,分别表示节点数.初始边数.操作数 ...

  3. Python面向对象(构造方法)

    day24 构造方法 特殊作用:在obj=classname()中1.创建对象,2.通过对象执行类中的一个特殊方法. class Bar: def __init__(self): ") de ...

  4. NOIp2018提高组游记

    Day1 T1 积木大赛 NOIp2013D2T1.....看到的时候我还以为我记错了,以为原题是一次可以随便加,这题只能加一,出考场后查了下发现一模一样. #include <iostream ...

  5. HDU-1260-Tickets(线性DP,DP入门)

    Tickets Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su ...

  6. 40.oracle事务

    一.事务特性 事务必须具备以下四个特性,简称ACID属性 原子性(Atomicity):事务是一个完整的操作.事务的各步操作是不可分割的(原子的):要么都执行,要么都不执行场景:银行转账 A-100 ...

  7. vue-cli3预设preset记录

    这两天公司搭建新项目的时候发现vue-cli3有一个神奇的的东西:preset(预设).preset其实是你在create新vue项目的时候,生成的插件配置项预设,也就是你在项目中需要用到的插件安装成 ...

  8. VUE 项目dependency was not found: * !!vue-style-loader!css-loader? 解决方案

    用npm run dev 运行vue项目时,出现以下错误: ERROR Failed to compile with errors :: This dependency was not found: ...

  9. mfix中输出DEM颗粒的固相速度到网格

    基于mfix-19.1.2版本 方法一:直接输出差值网格固相速度 注:这种方式只适用于garg 2012颗粒差值格式在DEM中,默认是无法输出固相速度的网格值的: 但是通过搜索des文件夹下V_s关键 ...

  10. Mac下的SSH插件(默认自带)

    Mac下默认自带,直接通过终端输入ssh获取更多的参数帮助.