为了澄清问题,我已经完成的项目如下所示。我尚未填写狗/猫等类的内容。你能给我一些指针吗?我不是在求别人给我“答案”,我只是迷失在这个领域中。我参加的是在线课程,他与我交流的方式让我感到困扰。我刚刚以全A的成绩通过了其他所有课程,所以我愿意付出努力,但我在理解这些概念和如何实际应用它们方面感到困惑。
请问有什么评论或帮助能让我在这个项目中取得进展吗?
我要实现的描述如下:
概述:
本次练习的目的是演示接口、继承、抽象类和多态的使用。您的任务是采取提供的程序框架,添加适当的类和相应的类成员/方法,以使该程序能够正常运行。您不能更改任何提供的代码,只能添加您编写的类。虽然有许多方法可以使程序正常工作,但您必须使用展示接口、继承、抽象类和多态使用的技术。再次强调,您可以在提供的代码中进行添加,但不能更改或删除其中任何内容。所提供的代码将与非常少量的附加代码一起工作,并满足练习的要求。
如果您成功完成任务,程序运行时应输出以下语句:
我的名字是斯波特,我是一只狗
我的名字是费利克斯,我是一只猫
要求:
1)您必须拥有一个名为“Animal”的抽象基类,从中派生出Dog和Cat类。
2)Animal基类必须从接口“IAnimal”派生,它是应该从IAnimal派生的唯一类。
3)由于所有动物都有一个名称,而且名称不是特定于狗或猫的属性,因此Animal基类应该是存储名称和实现WhatIsMyName get-property的位置。
4)您需要创建一个仅从Animal基类派生的Dog和Cat类。
5)Dog和Cat类应实现WhatAmI get-property,并返回适当的字符串值。
using System;
namespace IT274_U2
{
public interface IAnimal
{
string WhatAmI { get; }
string WhatIsMyName { get; }
}
public class TesterClass
{
public static void DescribeAnimal(IAnimal animal)
{
Console.WriteLine("My name is {0}, I am a {1}", animal.WhatIsMyName, animal.WhatAmI);
}
static void Main(string[] args)
{
Dog mydog = new Dog("Spot");
Cat mycat = new Cat("Felix");
DescribeAnimal(mydog);
DescribeAnimal(mycat);
}
}
}
我已经编写的代码:
using System;
namespace IT274_U2
{
public interface IAnimal
{
string WhatAmI { get; }
string WhatIsMyName { get; }
}
public class Dog
{
public abstract string WhatAmI
{
get;
set;
}
}//end public class Dog
public class Cat
{
public abstract string WhatIsMyName
{
get;
set;
}
}//end public class Cat
public abstract class Animal : IAnimal
{
// fields
protected string Dog;
protected string Cat;
// implement WhatIsMyName
//properties
public abstract String Dog
{
get;
set;
}
public abstract String Cat
{
get;
set;
}
public abstract string WhatIsMyName();
} //end public abstract class Animal
public class TesterClass
{
public static void DescribeAnimal(IAnimal animal)
{
Console.WriteLine("My name is {0}, I am a {1}", animal.WhatIsMyName, animal.WhatAmI);
}
static void Main(string[] args)
{
Dog mydog = new Dog("Spot");
Cat mycat = new Cat("Felix");
DescribeAnimal(mydog);
DescribeAnimal(mycat);
}
}
}