C# 你什么让程序员寂寞成酱紫 (男生版 娱乐中学习 抽象类 接口 继承 实现方法 )
你什么让程序员寂寞成酱紫 (男生版 娱乐中学习 抽象类 接口 继承 实现方法 )
一个家庭 相当于 一个空间,这个空间里 有 很多元素,比如 爱,爱这个抽象事物,可能有很多动作,接吻、交流,对于一个爱,必须有2个人物来实现,这个就是对象。
抽象类---爱 就是 每个人都可以继承的类,但是他本身 无法实现 对象,爱可以变成一个人吗? 不能(抽象类不可以实例化)
接口---每个人对于爱的表达 可以是:接吻,交流,ML,但是每个人 交流方式 和接吻方式一样吗? 你要是想拥有爱,肯定会接吻,肯会交流,肯定会ML,这就是与接口的约定,每个人的方式不一样,这个就是 多态。
普通类---对于一个拥有爱的男人,也就是你继承了 爱的元素,你就会有它的元素。这就是继承


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading; namespace Family
{ /* 2个年轻人,
* 要想组成一个家庭必须经历
* Kiss -> talking -> Make love
* (因人而异顺序改变)
*/ //爱是每个人都配拥有的
abstract class Love
{
//字段
protected string boyName;
protected string girlName;
protected string girlBeautiful;
protected int boyAge;
protected int girlAge;
//属性
public string BoyName
{
get { return boyName; }
set { boyName = value; }
}
public int BoyAge
{
get { return boyAge; }
set { boyAge = (value >= 18) ? value : 0; }
} public string GirlName
{
get { return girlName; }
set { girlName = value; }
}
public int GirlAge
{
get { return girlAge; }
set { girlAge = (value >= 18) ? value : 0; }
} //爱的构造初始化
public Love(string boyname, int boyage)//如果男人拥有爱
{
this.BoyName = boyname;
this.BoyAge = boyage; }
public Love(string girlname, int girlage, string description)//如果女人拥有爱
{
this.GirlName = girlname;
this.GirlAge = girlage;
this.girlBeautiful = description;
} }
//经历(接口)
interface IExperience
{
void Kiss();
void Talking();
void MakeLove(); } class Boy : Love, IExperience
{
//男生的字段
private decimal boySalay;
//男生的属性收入
public decimal BoySalay
{
get { return boySalay; }
set
{ if (value >= 2000)
{
boySalay = value;
}
if (value < 2000)
{
Console.WriteLine("你的收入不够谈恋爱");
} }
}
public Boy(string boyname, int boyage, decimal salay)
: base(boyname, boyage)
{
this.BoySalay = salay;
}
//接吻
public void Kiss()
{
int status = 10; for (int i = 1; i < status; i++,status--)
{
Console.WriteLine("第{0}天:\n我:我们接吻吧,你愿意吗?", i);
Console.Write("你:");
string str = Console.ReadLine();
if (str.ToUpper() == "YES")
{
Console.WriteLine();
Console.WriteLine("恭喜你");
return;
}
else if(str=="不准")
{
Console.WriteLine("我:不放弃..."); } if (status <= 0)
{
Console.WriteLine("我:良缘难再");
} } }
//交流
public void Talking()
{
int status = 5;
for (int i = 0; i < status; i++)
{
Console.WriteLine("我:你要分手吗“");
Console.Write("你:");
string str = Console.ReadLine();
if (str.ToUpper() == "YES")
{
Console.WriteLine("我:好吧,我是孤独的!");
return;
}
else if(str=="再说")
{
Console.WriteLine("我:我懂你意思了。");
return;
}
}
} //Making Love
public void MakeLove()
{
Console.WriteLine("深夜....");
Console.WriteLine("One Night,one boy and one girl......");
}
} public class Test
{
static void Main()
{
Console.WriteLine("[2个年轻人]\n[要想组成一个家庭必须经历]\n[Kiss -> talking -> Make love]\n(因人而异顺序改变) \n");
Console.Write("恋爱进行时");
for (int i = 0; i < 10; i++)
{
Console.Write(".");
Thread.Sleep(500);
}
Console.WriteLine();
Console.Write("某天,我们能谈恋爱吗?");
for (int i = 0; i < 10; i++)
{
Console.Write(".");
Thread.Sleep(500);
}
Console.WriteLine(); Boy oneboy = new Boy("jack",20,2000);
oneboy.Kiss();
oneboy.Talking();
oneboy.MakeLove();
}
} }

C# 你什么让程序员寂寞成酱紫 (男生版 娱乐中学习 抽象类 接口 继承 实现方法 )的更多相关文章
- 《程序员面试金典(第5版)》【PDF】下载
<程序员面试金典(第5版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382252 内容简介 本书作者Gayle Laakma ...
- Android java程序员必备技能,集合与数组中遍历元素,增强for循环的使用详解及代码
Android java程序员必备技能,集合与数组中遍历元素, 增强for循环的使用详解及代码 作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 For ...
- 【读书】PHP程序员要读的书目(不断完善中)
本文地址 分享提纲: 1. PHP 2. Linux 3. Apache/Nginx 4. Mysql 5.设计模式/架构 6. 缓存并发 7. 其他语言 8. 代码基础 9. 大前端 10. 管理生 ...
- PowerShell:Linux程序员喜欢的cmd增强版
Linux程序员有时偶尔使用Windows下的cmd工具,会被逼疯的,有些命令ls, cat, ps等已经条件反射一样使用. 但在cmd下,根本不知道该用什么命令,好在盖兹大叔照顾了此部分需求.从Vi ...
- 程序员大牛 Jeff Atwood 的两本中文书
程序员大牛,StackOverflow.com创始人之一--Jeff Atwood 英文博客:http://blog.codinghorror.com <高效能程序员的修炼>,人民邮电出版 ...
- 【Java】Java程序员面试宝典(第三版)第5章----Java程序设计基本概念
1.static静态变量,在次级作用域也可以被修改. 2.k++ + k++.第一个自加实际上只有在与计算+k++时补增.详情P36的题目. 3.Java数据类型从低到高分为(byte short c ...
- 疯狂Java:突破程序员基本功的16课-李刚编著 学习笔记(未完待续)
突破程序员基本功(16课) 数组 静态语言: 在编译的时候就能确定数据类型的语言,大多静态语言要求在使用变量之前必须声明数据类型(少数具有强推导能力的现代语言不用) 动态语言: 在程序运行时确定数据类 ...
- 99.9%的Java程序员都说不清的问题:JVM中的对象内存布局?
本文转载自公众号:石彬的架构笔记,阅读大约需要8分钟. 作者:李瑞杰 目前就职于阿里巴巴,资深 JVM 研究人员 在 Java 程序中,我们拥有多种新建对象的方式.除了最为常见的 new 语句之外,我 ...
- 很多.net 程序员不知道又非常重要的 .net高级调试技巧.调试别人的dll方法内的变量
事情是这样的, 最近需要开发Orcale的数据库. 于是使用了EF 加上 Oracle.ManagedDataAccess.Client 这个Oracle.ManagedDataAccess 很好用, ...
随机推荐
- Android RecyclerView遇到notifyDataSetChanged无效时的解决方案
一.简述 不管AbsListView(ListView.GridView)或是新出的RecyclerView,在使用notifyDataSetChanged方法更新列表数据时,一定要保证数据为同个对象 ...
- MariaDB常用命令手记
创建用户命令 mysql>create user username@localhost identified by 'password'; 直接创建用户并授权的命令 mysql>grant ...
- eclipse版本和jdk的版本兼容问题
eclipse也是有版本的,当版本过低时,无法兼容高版本的jdk 项目中用的是jdk1.8,但是低版本的eclipse只能选到jdk1.7,导致java文件在编译的过程中,不识别1.8版本jdk的语法 ...
- vi 命令学习(一)
行内移动] w word 向后移动一个单词 b back ·向前移动一个单词 行首 ^ 行首,第一个不是空白字符的位置 $ 行尾 [行数移动] gg go 文件顶部 G go 文件末尾 数字gg go ...
- 换个语言学一下 Golang (4)——变量与常量
一.变量定义 所谓的变量就是一个拥有指定名称和类型的数据存储位置. //看一个例子 package main import ( "fmt" ) func main() { var ...
- 表单enctype属性传值问题
form表单的enctype设置为multipart/form-data后,表单中除了文件后台能拿到,其他值后台都拿不到. 知识点: 一.application/x-www-form-urlencod ...
- uva 1401
Neal is very curious about combinatorial problems, and now here comes a problem about words. Knowing ...
- 名字竞技场 V3.0
更新内容 1.加入新boss,更高的难度. 2.支持组队模式勒! 3.针对大家反应的人物属性算法进行了修改,现在人物属性更多的取决于名字而不是随机数 4.用户界面优化 INF.代码拿走赞留下,不然你赢 ...
- Java 内存模型与线程
when ? why ? how ? what ? 计算机的运行速度和它的存储和通信子系统速度的差距太大,大量的时间都花费在磁盘I/O .网络通信或者数据库访问上.如何把处理器的运算能力"压 ...
- Android欢迎页面以及引导页面
开发环境:Windows 10 x64,Android Studio 3.0 很多APP都会在启动主界面(MainActivity)之前显示一个短暂的欢迎页面,设置微博,知乎,百度之类APP还是在欢迎 ...