C# 类的继承问题 正方形周长面积计算问题
1. 设计编写一个控制台应用程序,练习类的继承。
(1) 编写一个抽象类 People,具有”姓名”,”年龄”字段,”姓名”属性,Work 方法。
(2) 由抽象类 People 派生出学生类 Student 和职工类 Employer,继承 People 类,并覆盖Work 方法。
(3) 派生类 Student 增加”学校”字段,派生类 Employer 增加”工作单位”字段。
(4) 在 Student 和 Employer 实例中输出各自不同的信息。
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace Testing2_1
{
abstract class People
{
public String name; //姓名
public String Name //姓名属性
{
get;
set;
}
public String age; //年龄
public abstract void work(); //work方法
}
class Stu:People
{
public String school; //增加学校的字段
public override void work()
{
Console.WriteLine("这是Student类!");
}
}
class Employer :People //Empoyer类
{
public String workplace;
public override void work()
{
Console.WriteLine("这是Employer类!");
}
}
class Program
{
static void Main(string[] args)
{
Stu stu = new Stu();
Console.WriteLine("请输入学生的姓名:");
stu.name=Console.ReadLine();
Console.WriteLine("请输入学生的小名:");
stu.Name = Console.ReadLine();
Console.WriteLine("请输入学生的年龄:");
stu.age = Console.ReadLine();
Console.WriteLine("请输入学生的学校:");
stu.school = Console.ReadLine();
Console.WriteLine("学生的姓名:{0}", stu.name);
Console.WriteLine("学生的小名:{0}", stu.Name);
Console.WriteLine("学生的年龄:{0}", stu.age);
Console.WriteLine("学生的学校:{0}", stu.school);
stu.work();
Employer emp = new Employer();
Console.WriteLine("请输入员工的姓名:");
emp.name = Console.ReadLine();
Console.WriteLine("请输入员工的年龄:");
emp.age = Console.ReadLine();
Console.WriteLine("请输入员工的工作地点:");
emp.workplace = Console.ReadLine();
Console.WriteLine("员工的姓名:{0}", emp.name);
Console.WriteLine("员工的年龄:{0}", emp.age);
Console.WriteLine("员工的工作地点:{0}", emp.workplace);
emp.work();
Console.ReadLine();
Console.ReadLine(); }
}
}

2. 编写一个控制台应用程序,输入正方形边长或者半径,计算其周长和面积并输出。
(1) 编写两个接口,接口 IShape 包含三个方法:initialize, getPerimeter, getArea。分别进行初始化、获取边长和面积,其返回值均为 decimal。接口 IDisplayresult 显示计算结果。
(2) 编写两个类,Square(正方形)和 Circle(圆形),实现 IShape 和 IDisplayresult接口。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace Testing2_2
{
public interface IShape
{
void initalize(); //初始化
decimal getPerimeter(); //获取边长
decimal getArea(); //获取面积
}
public interface IDisplayresult
{
void show(); //结果显示
}
public class Square:IShape,IDisplayresult
{
public decimal sidelength;
public void initalize()
{
Console.WriteLine("请输入正方形边长:");
do
{
sidelength = decimal.Parse(Console.ReadLine());
if (sidelength <= 0)
{
Console.WriteLine("输入错误!请重新输入:"); } }while (sidelength <= 0); }
public decimal getPerimeter() //正方形获取面积的实现
{
return 4 * sidelength;
}
public decimal getArea()
{
return sidelength * sidelength;
}
public void show()
{
Console.WriteLine("正方形周长:{0}", getPerimeter());
Console.WriteLine("正方形面积:{0}", getArea());
}
}public class Circle:IShape,IDisplayresult
{
decimal radius;
const decimal pi = 3.14M;
public void initalize() //圆形初始化实现
{
Console.WriteLine("请输入圆形半径:");
do
{
radius = decimal.Parse(Console.ReadLine());
if(radius<=0)
{
Console.WriteLine("输入错误!请重新输入!"); }
} while (radius <= 0);
}
public decimal getPerimeter()
{
return 2 * pi * radius;
}
public decimal getArea()
{
return pi * radius * radius;
}
public void show()
{
Console.WriteLine("圆形周长:{0}", getPerimeter());
Console.WriteLine("圆形面积:{0}", getArea());
}
}
class Program
{
static void Main(string[] args)
{
Square squ = new Square();
Circle cir = new Circle();
int i = 0;
Console.WriteLine("欢迎进入正方形圆形周长面积计算系统!");
do
{
Console.WriteLine("菜单选择;");
Console.WriteLine("1、正方形 2、圆形 3、退出");
Console.WriteLine("请输入操作:");
i = int.Parse(Console.ReadLine());
switch (i)
{
case 1:
squ.initalize();
squ.show();
break;
case 2:
cir.initalize();
cir.show();
break;
case 3:
Console.WriteLine("感谢您的使用!");
break;
default:
Console.WriteLine("输入错误!请重新输入!");
break;
} } while (i != 3);
}
}
}

C# 类的继承问题 正方形周长面积计算问题的更多相关文章
- 第八次 Java 作业 重写正方形周长方法
# 题目 编写一个应用程序,创建一个矩形类,类中具有长.宽两个成员变量和求周长的方法. 再创建一个矩形类的子类——正方形类,类中定义求面积方法.重写求周长的方法. 在主类中,输入一个正方形边长,创建正 ...
- Java类的继承与多态特性-入门笔记
相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...
- 第六周&Java实验报告四(类的继承)
一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:radius表示圆 ...
- UML类图(上):类、继承和实现
面向对象设计 对于一个程序员来说,在工作的开始阶段通常都是别人把东西设计好,你来做.伴随着个人的成长,这个过程将慢慢变成自己设计一部分功能来实现,自己实现.如果要自己设计,无论是给自己看,还是给别人看 ...
- 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸
类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...
- (转)Java:类与继承
原文地址: http://www.cnblogs.com/dolphin0520/p/3803432.html 对于面向对象的程序设计语言来说,类毫无疑问是其最重要的基础.抽象.封装.继承.多态这四大 ...
- iBatis.net 类的继承extends和懒加载
<resultMaps> <resultMap id="FullResultMap" class="t_c_team_member_permission ...
- python 类定义 继承
0 前言 系统:win7 64bit IDE : python(x,y) 2.7.6.1 IDE集成的解释器:Python 2.7.6 (default, Nov 10 2013, 19:24:18) ...
- JS原型继承和类式继承
前言 一个多月前,卤煮读了一篇翻译过来的外国人写的技术博客.此君在博客中将js中的类(构造)继承和原型继承做了一些比较,并且得出了结论:建议诸位在开发是用原型继承.文中提到了各种原型继承的优点,详细的 ...
随机推荐
- java 8 启动脚本优化
1 #!/bin/bash 2 3 JAVA_HOME=/usr/java/default 4 5 #java虚拟机启动参数 6 JAVA_OPTS="-server -Xms1366m - ...
- Oracle不等于符号过滤null情况
在Oracle查询过程中,条件查询时,用"<>"操作符进行查询会过滤掉字段为null的记录. 一.不使用"<>"操作符查询:select ...
- git提交忽略文件.gitignore内容
###################################################################### # Build Tools .gradle /build/ ...
- SpringBoot整合Light Security框架
官方git地址:https://gitee.com/itmuch/light-security/tree/master 引入maven <dependency> <groupId&g ...
- 【LeetCode】813. Largest Sum of Averages 解题报告(Python)
[LeetCode]813. Largest Sum of Averages 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个人博 ...
- Unknown Treasure(hdu5446)
Unknown Treasure Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Other ...
- '2'>'10'==true? JS是如何进行隐式类型转换的?
前言 '2'>'10'返回的true,可能很多人都不是很能理解吧? 在js中,当运算符在运算时,如果两边数据不统一,CPU就无法计算,这时我们编译器会自动将运算符两边的数据做一个数据类型转换,转 ...
- Docker 与 K8S学习笔记(八)—— 自定义容器网络
我们在上一篇中介绍了Docker中三种网络,none.host和bridge,除了这三种网络,Docker还允许我们创建自定义网络,当我们要创建自定义网络时,Docker提供了三种网络驱动供我们选择: ...
- CSS实现水平垂直居中的方式有哪些?
CSS实现水平垂直居中的方式有哪些? 基本结构样式: .box { width: 400px; height: 400px; background-color: red; } .inner { wid ...
- Java代码性能优化
(1)在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面: 控制资源的使用,通过线程同步来控制资源的并 ...