Можете ли вы дать мне почти чрезмерно упрощенное понимание абстрактного класса и использования наследования и помочь мне, чтобы я мог действительно понять концепцию и как ее реализовать? У меня есть проект, который я пытаюсь выполнить, и я потерял его, как реализовать. Я беседовал с моим профессором, и мне сказали, что если я не смогу это понять, я, вероятно, не готов к курсу. У меня НАПРАВЛЕНЫ предварительные курсы, и до сих пор сложно понять эти понятия.Можете ли вы помочь мне в практическом примере понять использование абстрактных классов и интерфейсов?
Чтобы уточнить, проект, как я сделал до сих пор, приведен ниже. У меня еще нет классов для собак/кошек и т. Д. Можете ли вы дать мне указатель. Я не прошу кого-нибудь дать мне «ответы». Я просто теряюсь на том, куда идти с этим. Я беру онлайн-курсы, и его усилия по связям со мной были тревожными. Я только что закончил с 4.0 со всеми моими другими курсами, поэтому я готов приложить усилия, но я потерял понимание этих концепций и как ПРАКТИЧЕСКИ применить их.
Любые комментарии или помощь, которые позволят мне продвинуться дальше в этом проекте?
Описание того, что я реализовать следующим образом:
Обзор:
Цель этого упражнения состоит в продемонстрировать использование интерфейсов, наследование, абстрактные классы, и Полиморфизм. Ваша задача - взять прилагаемую оболочку программы и добавить соответствующие классы и соответствующие классы/методы класса , чтобы эта программа функционировала правильно. Вы можете не вносить изменения в код , вы можете добавлять только классы , которые вы пишете. Хотя есть множество способов получить программу , вы должны использовать методы, которые демонстрируют использование интерфейсов,
Наследование, абстрактные классы и Полиморфизм. Опять же, чтобы сделать ясно, вы можете добавить к прилагаемому коду, но вы не можете изменить или удалить любой из . Код, который поставляется, будет работать с очень небольшим дополнительным кодом и будет удовлетворять требованиям упражнения.Если вы успешно завершить задания, ваша программа должна вывести следующие утверждения при запуске:
Меня зовут Пятно, я собака
Меня зовут Феликс, я Cat
Требования:
1) Вы должны иметь абстрактный базовый класс под названием «Animal», из которого Пес и кот с лайсы.
2) базового класса Animal должны получить из интерфейса «IAnimal», это единственный класс, который должен вывести из IAnimal.
3) Поскольку все животные имеют имя и имя не является атрибутом, который является специфическими для собаки или кошки, животное
базовый класс должен быть где имя хранится и где WhatIsMyName реализована функция get-property.
4) Вам необходимо будет создать собаку и класс Cat, который будет получен только от базового класса животных.
5) Классы собак и кошек должны реализовать свойство getAmI, а - вернуть соответствующее строковое значение.
код вы не можете изменить:
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);
}
}
}
///////////////////////
Code I» ве написано до сих пор:
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);
}
}
}
Является ли образец кода в вашем сообщении кодом, который вам не разрешено изменять? –
@Mike - только то, что я собирался спросить :) –
обновил вопрос выше с кодом, данным профессором, и кодом, который я написал. Спасибо за это, я даже не подумал. Он сказал мне, что у меня общий план, но снова он очень быстро отталкивал меня от сеанса, так что только ненадолго взглянул на него. – SheldonH