你什么让程序员寂寞成酱紫 (男生版 娱乐中学习 抽象类 接口 继承 实现方法 )

 

一个家庭 相当于 一个空间,这个空间里 有 很多元素,比如 爱,爱这个抽象事物,可能有很多动作,接吻、交流,对于一个爱,必须有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#

C# 你什么让程序员寂寞成酱紫 (男生版 娱乐中学习 抽象类 接口 继承 实现方法 )的更多相关文章

  1. 《程序员面试金典(第5版)》【PDF】下载

    <程序员面试金典(第5版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382252 内容简介 本书作者Gayle Laakma ...

  2. Android java程序员必备技能,集合与数组中遍历元素,增强for循环的使用详解及代码

    Android java程序员必备技能,集合与数组中遍历元素, 增强for循环的使用详解及代码 作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 For ...

  3. 【读书】PHP程序员要读的书目(不断完善中)

    本文地址 分享提纲: 1. PHP 2. Linux 3. Apache/Nginx 4. Mysql 5.设计模式/架构 6. 缓存并发 7. 其他语言 8. 代码基础 9. 大前端 10. 管理生 ...

  4. PowerShell:Linux程序员喜欢的cmd增强版

    Linux程序员有时偶尔使用Windows下的cmd工具,会被逼疯的,有些命令ls, cat, ps等已经条件反射一样使用. 但在cmd下,根本不知道该用什么命令,好在盖兹大叔照顾了此部分需求.从Vi ...

  5. 程序员大牛 Jeff Atwood 的两本中文书

    程序员大牛,StackOverflow.com创始人之一--Jeff Atwood 英文博客:http://blog.codinghorror.com <高效能程序员的修炼>,人民邮电出版 ...

  6. 【Java】Java程序员面试宝典(第三版)第5章----Java程序设计基本概念

    1.static静态变量,在次级作用域也可以被修改. 2.k++ + k++.第一个自加实际上只有在与计算+k++时补增.详情P36的题目. 3.Java数据类型从低到高分为(byte short c ...

  7. 疯狂Java:突破程序员基本功的16课-李刚编著 学习笔记(未完待续)

    突破程序员基本功(16课) 数组 静态语言: 在编译的时候就能确定数据类型的语言,大多静态语言要求在使用变量之前必须声明数据类型(少数具有强推导能力的现代语言不用) 动态语言: 在程序运行时确定数据类 ...

  8. 99.9%的Java程序员都说不清的问题:JVM中的对象内存布局?

    本文转载自公众号:石彬的架构笔记,阅读大约需要8分钟. 作者:李瑞杰 目前就职于阿里巴巴,资深 JVM 研究人员 在 Java 程序中,我们拥有多种新建对象的方式.除了最为常见的 new 语句之外,我 ...

  9. 很多.net 程序员不知道又非常重要的 .net高级调试技巧.调试别人的dll方法内的变量

    事情是这样的, 最近需要开发Orcale的数据库. 于是使用了EF 加上 Oracle.ManagedDataAccess.Client 这个Oracle.ManagedDataAccess 很好用, ...

随机推荐

  1. Java_Web三大框架之Hibernate操作数据库(三)

    使用Hibernate操作数据库需要七个步骤: (1)读取并解析配置文件 Configuration conf = newConfiguration().configure(); (2)读取并解析映射 ...

  2. iOS crash log 解析 symbol address = stack address - slide 运行时获取slide的api 利用dwarfdump从dsym文件中得到symbol

    概述: 为什么 crash log 内 Exception Backtrace 部分的地址(stack address)不能从 dsym 文件中查出对应的代码? 因为 ASLR(Address spa ...

  3. PHP 之sha256 sha512封装

    /* PHP sha256 sha512目前(PHP 7.1)没有内置的函数来计算,sha1() sha1_file() md5() md5_file()分别可以用来计算字符串和文件的sha1散列值和 ...

  4. 结果缓冲区 resbuf具体用法

    struct resbuf *rb; rb=acutBulidlist(RTSTR,text(), rtpoint,,,,,) 创建圆用法. acdbEntGet 返回结果缓冲区  然后 rb-> ...

  5. nodejs 文件操作模块 fs

    const fs=require("fs"); //文件操作 //创建目录 ./ 代表当前目录 ../ 代表上级目录fs.mkdir('./test',function(err){ ...

  6. 利用shell脚本去备份幸运28源码搭建下载所指定的数据库

    #! /bin/bash幸运28源码搭建下载Q[115288oo99]logintool=/home/yx/server/mysql/mysql/bin/mysqldumptool=/home/yx/ ...

  7. 第十四节:pandas之merge()合并

    Pandas提供了一个merge()函数,作为DataFrame对象之间所有标准数据库连接操作的入口pandas.merge(left,right,how='inner',on=None,left_o ...

  8. 使用 lua 编写 wireshark 协议解析插件

    一.平台 操作系统:windows 7 wireshark:1.10.3 lua:5.1 二.准备 lua 语言基本语法,特别是关于表操作和循环 wireshark 文档,包括用户使用文档和开发者文档 ...

  9. flask运行环境搭建(nginx+gunicorn)

    系统:CentOS7.2(阿里云ESC) 1.python版本,使用的是默认的python2.7(或者先安装python3) 2.安装nginx,yum install -y nginx 3.安装vi ...

  10. hdu2014 青年歌手大奖赛_评委会打分【C++】

    青年歌手大奖赛_评委会打分 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...