添加Lesson17
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RootNamespace>Lesson17_多态_vob练习</RootNamespace>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,154 @@
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Lesson17_多态_vob练习
|
||||
{
|
||||
#region 鸭子题
|
||||
class Duck
|
||||
{
|
||||
public virtual void Speak()
|
||||
{
|
||||
Console.WriteLine("嘎嘎叫");
|
||||
}
|
||||
}
|
||||
class WoodDuck : Duck
|
||||
{
|
||||
public override void Speak()
|
||||
{
|
||||
Console.WriteLine("吱吱叫");
|
||||
}
|
||||
|
||||
}
|
||||
class RubberDuck : Duck
|
||||
{
|
||||
public override void Speak()
|
||||
{
|
||||
Console.WriteLine("叽叽叫");
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 打卡题
|
||||
class Staff
|
||||
{
|
||||
public virtual void Clockin()
|
||||
{
|
||||
Console.WriteLine("员工9点打卡");
|
||||
}
|
||||
}
|
||||
class Boss: Staff
|
||||
{
|
||||
public override void Clockin()
|
||||
{
|
||||
Console.WriteLine("老板11点打卡");
|
||||
}
|
||||
|
||||
}
|
||||
class Programer : Staff
|
||||
{
|
||||
public override void Clockin()
|
||||
{
|
||||
Console.WriteLine("程序员无需打卡");
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 计算题
|
||||
class Graph
|
||||
{
|
||||
public virtual void Perimeter()
|
||||
{
|
||||
Console.WriteLine("未初始化图形无法计算");
|
||||
}
|
||||
public virtual void Area()
|
||||
{
|
||||
Console.WriteLine("未初始化图形无法计算");
|
||||
}
|
||||
}
|
||||
class Rectangle : Graph
|
||||
{
|
||||
public int x, y;
|
||||
public Rectangle(int x, int y)
|
||||
{
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
}
|
||||
public override void Perimeter()
|
||||
{
|
||||
Console.WriteLine("矩形周长为{0}", (x + y) * 2);
|
||||
}
|
||||
public override void Area()
|
||||
{
|
||||
Console.WriteLine("矩形面积为{0}", x * y);
|
||||
}
|
||||
}
|
||||
class Square : Graph
|
||||
{
|
||||
public int x;
|
||||
public Square(int x)
|
||||
{
|
||||
this.x = x;
|
||||
}
|
||||
|
||||
public override void Perimeter()
|
||||
{
|
||||
Console.WriteLine("方的周长为{0}", x * 4);
|
||||
}
|
||||
public override void Area()
|
||||
{
|
||||
Console.WriteLine("方的面积为{0}", x * x);
|
||||
}
|
||||
}
|
||||
class Round : Graph
|
||||
{
|
||||
public double PI = 3.1415926;
|
||||
int r;
|
||||
public Round(int r)
|
||||
{
|
||||
this.r = r;
|
||||
}
|
||||
public override void Perimeter()
|
||||
{
|
||||
double perimeter = 2 * PI * r;
|
||||
Console.WriteLine("圆的周长{0}",perimeter);
|
||||
}
|
||||
public override void Area()
|
||||
{
|
||||
double areas = PI * r * r;
|
||||
Console.WriteLine("圆的面积{0}",areas);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
internal class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
Console.WriteLine("Hello, World!");
|
||||
Duck realDuck = new Duck();
|
||||
realDuck.Speak();
|
||||
Duck woodDuck = new WoodDuck();
|
||||
woodDuck.Speak();
|
||||
Duck rubberDuck = new RubberDuck();
|
||||
rubberDuck.Speak();
|
||||
|
||||
Programer p = new Programer();
|
||||
p.Clockin();
|
||||
Boss b = new Boss();
|
||||
b.Clockin();
|
||||
Staff s = new Staff();
|
||||
s.Clockin();
|
||||
|
||||
Graph rectangle = new Rectangle(2,3);
|
||||
rectangle.Perimeter();
|
||||
rectangle.Area();
|
||||
Graph square = new Square(2);
|
||||
square.Perimeter();
|
||||
square.Area();
|
||||
Graph round = new Round(3);
|
||||
round.Perimeter();
|
||||
round.Area();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user