
#21 - Абстрактные классы, методы и свойства
Видеоурок
Абстрактные классы очень схожи с обычными классами в Java. Единственное отличие заключаются в том, что абстрактный класс ничего не реализует. Внутри него можно лишь указать все методы и поля, которые необходимо реализовывать во всех классах наследниках.
Для создания абстрактного классов используется ключевое слово abstract
:
abstract class Person {
public abstract float getHeight();
public abstract string getName();
}
В абстрактном классе можно создать методы как в интерфейсах или же можно прописать абстрактные методы, что ничего из себя не представляют. Для создания абстрактного метода используйте ключевое слово abstract
перед указанием типа данных.
Классы наследники от абстрактного класса должны реализовывать все методы абстрактного класса, иначе компилятор будет выдавать ошибки.
Подобные классы полезны, ведь можно указать лишь общий функционал, что должен присутствовать во всех классах наследниках, но при этом какая именно будет реализация нам не известно.
Исходный код
using System;
using System.Collections.Generic;
namespace ProjectOne {
abstract class Animal {
public abstract void Print ();
}
class Dog : Animal {
private float speed;
public Dog (float speed) {
this.speed = speed;
}
public override void Print () {
Console.WriteLine ("Dog speed: " + speed);
}
}
class Cat : Animal {
private float speed;
public Cat (float speed) {
this.speed = speed;
}
public override void Print () {
Console.WriteLine ("Cat speed: " + speed);
}
}
class MainClass {
public static void Main (string[] args) {
List<Animal> animals = new List<Animal> ();
animals.Add (new Dog (12.23f));
animals.Add (new Dog (12.3f));
animals.Add (new Cat (12.3f));
foreach (Animal animal in animals) {
animal.Print ();
}
Console.ReadKey ();
}
}
}
Задание к уроку
Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям
Большое задание по курсу
Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца
Также стоит посмотреть