C#面向对象1 类 以及 类的继承(new、ovverride)
类 的典型代码==============================
包括 属性及其判断赋值 方法 构造函数及其重载
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)的更多相关文章
- 黑马程序员——【Java基础】——面向对象(一)概述、类与对象、继承、抽象类、接口、多态、内部类
---------- android培训.java培训.期待与您交流! ---------- 一.面向对象概述 1.面向对象:是一个很抽象的概念,它相对面向过程而言,是一种程序设计的思想. 2.面向对 ...
- Kotlin——从无到有系列之中级篇(四):面向对象的特征与类(class)继承详解
如果您对Kotlin很有兴趣,或者很想学好这门语言,可以关注我的掘金,或者进入我的QQ群大家一起学习.进步. 欢迎各位大佬进群共同研究.探索 QQ群号:497071402 进入正题 在前面的章节中,详 ...
- Lua面向对象之二:类继承
1.类继承 ①代码 Sharp = { } --① 父类 function Sharp:new() local new_sharp = { } self.__index = self --②,self ...
- python开发面向对象基础:接口类&抽象类&多态&钻石继承
一,接口类 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数名)且并未实 ...
- Python面向对象之:三大特性:继承,封装,多态以及类的约束
前言: python面向对象的三大特性:继承,封装,多态. 1. 封装: 把很多数据封装到⼀个对象中. 把固定功能的代码封装到⼀个代码块, 函数, 对象, 打包成模块. 这都属于封装的思想. 具体的情 ...
- C++ Pirmer : 第十五章 : 面向对象程序设计之基类和派生的定义、类型转换与继承与虚函数
基类和派生类的定义以及虚函数 基类Quote的定义: classs Quote { public: Quote() = default; Quote(cosnt std::string& bo ...
- 面向对象:继承(经典类&新式类继承原理、属性查找)、派生
继承: 继承是指类与类之间的关系,是一种“什么”是“什么”的关系. 继承的功能之一就是用来解决代码重用问题 继承是一种创建新类的方式,在Python中,新建的类可以继承一个或多个父类,父类又可以称为基 ...
- 前端学PHP之面向对象系列第一篇——类和对象
× 目录 [1]类 [2]成员属性[3]成员方法[4]对象[5]成员访问[6]this 前面的话 面向对象程序设计(OOP)是一种计算机编程架构.计算机程序由单个能够起到子程序作用的单元或对象组成,为 ...
- [.net 面向对象编程基础] (9) 类和类的实例
[.net 面向对象编程基础] (9) 类和类的实例 类 ,顾名思义就是分类.类别的意思.我们要面向对象编程,就需要对不同的事物进行分类.类可以说是.net面向对象的核心. 类:就是具有相同的属性和功 ...
- php面向对象之抽像类、接口、final、类常量
一.抽像类(abstract) 在我们实际开发过程中,有些类并不需要被实例化,如前面学习到的一些父类,主要是让子类来继承,这样可以提高代码复用性语法结构: 代码如下 复制代码 ab ...
随机推荐
- setInterval(code, time)中code传递参数办法
1.使用setInterval的场景 有时我们需要隔一定的时间执行一个方法,这时就会用到setInterval,但是由于这个方法是浏览器模拟出的Timer线程,在调用我们方法时不能为其传递参数. 2. ...
- centos6.5配置163的yum源
CentOS系统自带的更新源的速度实在是慢,为了让CentOS6使用速度更快的YUM更新源,可以选择163(网易)的更新源. 1.下载repo文件 wget http://mirrors.163.co ...
- github每次push都需要密码以及用户名的解决办法
git remote set-url origin git@github.com:你的账户/项目名称.git就可以直接git push origin master了.
- Agile methodology
ntroduction Waterfall model follows application development in phases with checkpoint and deliverabl ...
- Hive实现oracle的Minus函数
在Oracle中minus运算的主要功能是: 在进行两个表格或者两个查询结果的时候,返回在第一个表格/查询结果中与第二个表格/查询结果不同样的记录. 结果不同样的记录包括两种情况:A,B 表中某一行的 ...
- C++数据结构之图
图的实现是一件很麻烦的事情,很多同学可能在学数据结构时只是理解了图的基本操作和遍历原理,但并没有动手实践过.在此,我说说我的实现过程. 首先,在草稿纸上画一个图表,这里是有向图,无向图也一样,如下: ...
- Android自动化测试基础知识——MONKEY测试工具(转的)
本周开始启动手机输入法simeiji的自动化测试,同时开始接触手机浏览器自动化测试.接下来会对android自动化测试工具和方法做一个专题研究. 第一篇介绍monkey测试工具. 1 自动化测试背景 ...
- iOS 文件操作:沙盒(SandBox)、文件操作(FileManager)、程序包(NSBundle)
版权声明:本文为博主原创文章,转载请声明出处:http://blog.csdn.net/jinnchang 1.沙盒机制介绍 iOS 中的沙盒机制(SandBox)是一种安全体系.每个 iOS 应用程 ...
- 关于PHPExcel类占用内存问题
最近在帮一家公司做后台excel导出功能,使用的工具类是phpexcel,因为这个类功能比较强大.全面. 但是遇到下面一个问题: 当导出数据量达到一定数量级的时候,比如说1000条,服务器出现卡顿.白 ...
- Oracle Dedicated server 和 Shared server(专用模式 和 共享模式) 说明(转)
一. 官网说明 在DBCA 建库的时候,有提示让我们选择连接类型,这里有两种类型:专用服务器模式和共享服务器模式.默认使用专用模式.如下图: Oracle 官方文档对这两种文档的说明如下: Abou ...