类 的典型代码==============================
包括 属性及其判断赋值  方法  构造函数及其重载
namespace 类的属性和方法
{
    public class Car
    {       
        private int _speed;    
        private string _name;                public int Speed             //属性的封装,判断
        {        
            set {
                if (value == 20)
                {
                    this._speed = value;
                }
                else
                {
                    this._speed = 50;
                }
            }        
            get{return this._speed;}     
        }             public string Name    
        {        
            set { this._name=value;}        
            get{return this._name;}     
        }             //显式定义默认构造函数    
        public Car(){}             //重载的带有参数的构造函数
        public Car(string name,int speed)    
        {        
            this._name=name;        
            this._speed=speed;    
        }             public void ShowState()     
        {
            Console.WriteLine("Car {0} is going {1} MPH", this._name,this. _speed);
        }
    }       class Program
    {
        static void Main(string[] args)
        {
            Car car1= new Car("胡章诚",19);
            car1.Speed = 19;
            Console.WriteLine("车名是{0},时速{1}", car1.Name, car1.Speed);
            car1.ShowState();
            Console.ReadKey();
        }
    }
}    
一般类的继承=============================
1、类的继承——子类构造函数 概述:子类默认情况下会调用父类的的无参数构造函数
      如果父类写了有参数的构造函数,子类未调用父类的有参数的构造函数,则需要显示的写出父类的无参数构造函 namespace 类的继承_子类构造函数
{
    class Program
    {
        //3、 定义父亲类Father(姓firstName,财产wealth,血型blood),儿子Son类(玩游戏PlayGame),女儿Daughter类(跳舞Dance),
        //    调用父类构造函数给子类字段赋值。
        static void Main(string[] args)
        {
            Son son = new Son("Green", 20000, "O", "Good");                 //实例化一个儿子的对象
            Console.WriteLine(son.firstName);
            son.PlayGame("lol");               //调用儿子的方法
            Console.ReadKey();
        }
    }     class Father
    {
        public string firstName;
        public int wealth;
        public string blood;         public Father() { }     //如果子类写了一个造函数,此造函数没有调用父类带参数的构造函数,此时就要显示的写出父类的无参数构造函数
        public Father(string f, int w, string b)      //定于父类带参数的构造函数
        {
            this.firstName = f;
            this.wealth = w;
            this.blood = b;
        }
    }     class Son : Father
    {
        public string health;         //自己写的一个字段
        public void PlayGame(string Game)           //将儿子玩游戏写成一个方法
        {
            Console.WriteLine("我玩{0},哈哈哈哈哈;", Game);
        }         public Son(string f, int w, string b, string h)
            : base(f, w, b)                //利用base调用父类的构造函数
        {
            this.firstName = f;
            this.wealth = w;
            this.blood = b;
            this.health = h;
        }
    }     class Daughter : Father
    {
        public int age;              //自己写的一个字段
        public void Dance()          //将女儿跳舞写成一个方法
        {
            Console.WriteLine("我跳拉丁,呵呵");
        }         public Daughter(string f, int w, string b, int a)
            : base(f, w, b)             //利用base调用父类的构造函数
        {
            this.firstName = f;
            this.wealth = w;
            this.blood = b;
            this.age = a;
        }
    }
} 。。。。。。。。。。。。。。。。。。。。。。。。。 2、类的继承——用new关键字覆盖产生新方法 namespace 类的继承
{
    class Program
    {
        static void Main(string[] args)
        {
            OtherClass oc = new OtherClass();
            oc.Method1(oc.Field1);
            
            Console.ReadKey();
        }           class SomeClass
        {
            public string Field1 = "base class field1";
            public void Method1(string value) 
            {
                Console.WriteLine("Base class -- Method1:{0}",value);
            }
        }         class OtherClass:SomeClass
        {
            new public string Field1 = "OtherClass Field1";     //掩盖旧成员
            new public void Method1(string value)               //掩盖旧成员
            {
                Console.WriteLine("OtherClass.Method:{0}",value);
                Console.WriteLine(base.Field1);                 //访问基类成员
            }
        }
    }
} 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 3、类的继承——虚方法、抽象方法的重写产生新方法 namespace 虚方法和复写方法
{
    class Program
    {
        static void Main(string[] args)
        {
            MyDrivedClass drived = new MyDrivedClass();
            MyBaseClass mybs = (MyBaseClass)drived;
            drived.Print();
            mybs.Print();
            Console.ReadKey();
        }
    }     class MyBaseClass
    {
        virtual public void Print()
        {
            Console.WriteLine("this is base class");
        }
    }     class MyDrivedClass:MyBaseClass
    {
        override public void Print()
        {
            Console.WriteLine("this is drived class");
        }
    }
}

C#面向对象1 类 以及 类的继承(new、ovverride)的更多相关文章

  1. 黑马程序员——【Java基础】——面向对象(一)概述、类与对象、继承、抽象类、接口、多态、内部类

    ---------- android培训.java培训.期待与您交流! ---------- 一.面向对象概述 1.面向对象:是一个很抽象的概念,它相对面向过程而言,是一种程序设计的思想. 2.面向对 ...

  2. Kotlin——从无到有系列之中级篇(四):面向对象的特征与类(class)继承详解

    如果您对Kotlin很有兴趣,或者很想学好这门语言,可以关注我的掘金,或者进入我的QQ群大家一起学习.进步. 欢迎各位大佬进群共同研究.探索 QQ群号:497071402 进入正题 在前面的章节中,详 ...

  3. Lua面向对象之二:类继承

    1.类继承 ①代码 Sharp = { } --① 父类 function Sharp:new() local new_sharp = { } self.__index = self --②,self ...

  4. python开发面向对象基础:接口类&抽象类&多态&钻石继承

    一,接口类 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数名)且并未实 ...

  5. Python面向对象之:三大特性:继承,封装,多态以及类的约束

    前言: python面向对象的三大特性:继承,封装,多态. 1. 封装: 把很多数据封装到⼀个对象中. 把固定功能的代码封装到⼀个代码块, 函数, 对象, 打包成模块. 这都属于封装的思想. 具体的情 ...

  6. C++ Pirmer : 第十五章 : 面向对象程序设计之基类和派生的定义、类型转换与继承与虚函数

    基类和派生类的定义以及虚函数 基类Quote的定义: classs Quote { public: Quote() = default; Quote(cosnt std::string& bo ...

  7. 面向对象:继承(经典类&新式类继承原理、属性查找)、派生

    继承: 继承是指类与类之间的关系,是一种“什么”是“什么”的关系. 继承的功能之一就是用来解决代码重用问题 继承是一种创建新类的方式,在Python中,新建的类可以继承一个或多个父类,父类又可以称为基 ...

  8. 前端学PHP之面向对象系列第一篇——类和对象

    × 目录 [1]类 [2]成员属性[3]成员方法[4]对象[5]成员访问[6]this 前面的话 面向对象程序设计(OOP)是一种计算机编程架构.计算机程序由单个能够起到子程序作用的单元或对象组成,为 ...

  9. [.net 面向对象编程基础] (9) 类和类的实例

    [.net 面向对象编程基础] (9) 类和类的实例 类 ,顾名思义就是分类.类别的意思.我们要面向对象编程,就需要对不同的事物进行分类.类可以说是.net面向对象的核心. 类:就是具有相同的属性和功 ...

  10. php面向对象之抽像类、接口、final、类常量

    一.抽像类(abstract)        在我们实际开发过程中,有些类并不需要被实例化,如前面学习到的一些父类,主要是让子类来继承,这样可以提高代码复用性语法结构:  代码如下 复制代码   ab ...

随机推荐

  1. [LeetCode]题解(python):066-Plus One

    题目来源: https://leetcode.com/problems/plus-one/ 题意分析: 给定一个数组,将数加一,返回新的数组.比如[9,9],返回[1,0,0]. 题目思路: 这道题目 ...

  2. django 基础入门(二)

    一.关于数据库 1.首先django 1.9以上等版本不支持pymysql,因此需要做一些调整. 比如在settings.py 加入一段代码: import pymysql pymysql.insta ...

  3. Nginx阅读笔记(三)之proxy_pass用法

    在nginx中配置proxy_pass时,当在后面的url加上了/,相当于是绝对根路径,则nginx不会把location中匹配的路径部分代理走,如果没有/,则会把匹配的路径部分也给代理走. 假设访问 ...

  4. matrix67:kmp算法详解

    个人认为KMP是最没有必要讲的东西,因为这个东西网上能找到很多资料.但网上的讲法基本上都涉及到“移动(shift)”.“Next函数”等概念,这非常容易产生误解(至少一年半前我看这些资料学习KMP时就 ...

  5. poj3308Paratroopers(最小割)

    题目请戳这里 题目大意:给一个n*m的矩阵,给一些点(ri,ci)表示该点在第ri行第ci列.现在要覆盖所有的点,已知覆盖第i行代价为Ri,覆盖第j列代价为Cj.总代价是累乘的,求最小总代价能覆盖所有 ...

  6. STL set的用法

    要使用set需要事先引入一个头文件 #include<set> set是一个不允许重复的集合,如果要重复可以使用multiset. 1.set的插入[set.insert();],会返回P ...

  7. 【转】 随机梯度下降(Stochastic gradient descent)和 批量梯度下降(Batch gradient descent )的公式对比、实现对比

    梯度下降(GD)是最小化风险函数.损失函数的一种常用方法,随机梯度下降和批量梯度下降是两种迭代求解思路,下面从公式和实现的角度对两者进行分析,如有哪个方面写的不对,希望网友纠正. 下面的h(x)是要拟 ...

  8. Button的设置及各种属性

    (1)UIButton类继承自UIControl,而UIControl继承自UIView,因为UIView就是个矩形区域,所以UIButton实例化的对象其实都是一个矩形,虽然有各种圆角.增加联系人. ...

  9. 警惕 MySql 更新 sql 的 WHERE 从句中的 IN() 子查询时出现的陷阱

    mer_stage 表有 216423 条记录,DDL: CREATE TABLE `mer_stage` ( `STAGE_ID` int(11) NOT NULL AUTO_INCREMENT, ...

  10. android动画效果演示

    第一种:TranslateAnimation  动画效果演示: public void move(View view) { // 传统动画效果 TranslateAnimation animation ...