Организовать множественное наследование с использованием интерфейсов - C#
Формулировка задачи:
Ребят, не знаю как решить. Может кто сможет?
Задание выглядит так:
Доработайте программу, созданную в лабораторной работе №11.1, следующим образом:
- организуйте множественное наследование с использованием интерфейсов;
- добавьте как минимум еще один интерфейс;
- класс/классы должны реализовывать как минимум два интерфейса.
А вот решенный пример лабораторной работы №11.1
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- interface ICalculate
- {
- int Add();
- int Sub();
- int Mul();
- double Div();
- }
- class Calculate : ICalculate
- {
- private int a;
- private int b;
- public Calculate()
- {
- a = 0; // не обязательно
- b = 0; // не обязательно
- }
- public Calculate(int a, int b)
- {
- this.a = a;
- this.b = b;
- }
- public int Add()
- { return a + b; }
- public int Sub()
- { return a - b; }
- public int Mul()
- { return a * b; }
- public double Div()
- { return b == 0 ? 0 : (double)a / b; }
- // Метод, не являющийся частью интерфейса
- public int Pow()
- { return (int)Math.Pow(a, b); }
- public int getA()
- { return a; }
- public int getB()
- { return b; }
- }
- class A
- {
- static void Main()
- {
- Console.WriteLine("Введите a");
- int a = Convert.ToInt32(Console.ReadLine());
- Console.WriteLine("Введите b");
- int b = Convert.ToInt32(Console.ReadLine());
- Calculate obj1 = new Calculate(a, b);
- Calculate obj2 = new Calculate(a, b);
- Console.WriteLine("{0} + {1} = {2}", obj1.getA(), obj1.getB(), obj1.Add());
- Console.WriteLine("{0} - {1} = {2}", obj1.getA(), obj1.getB(), obj1.Sub());
- Console.WriteLine("{0} * {1} = {2}", obj2.getA(), obj2.getB(), obj2.Mul());
- Console.WriteLine("{0} / {1} = {2}", obj2.getA(), obj2.getB(), obj2.Div());
- Console.ReadKey(true);
- }
- }
Решение задачи: «Организовать множественное наследование с использованием интерфейсов»
textual
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApplication3
- {
- interface IRadical
- {
- double Radical();
- }
- interface ISquare
- {
- int Square();
- }
- interface ICalculate: IRadical,ISquare
- {
- int Add();
- int Sub();
- int Mul();
- double Div();
- }
- class Calculate : ICalculate
- {
- private int a;
- private int b;
- public Calculate()
- {
- a = 0;
- b = 0;
- }
- public Calculate(int a, int b)
- {
- this.a = a;
- this.b = b;
- }
- public int Add()
- { return a + b; }
- public int Sub()
- { return a - b; }
- public int Mul()
- { return a * b; }
- public double Div()
- { return b == 0 ? 0 : (double)a / b; }
- public double Radical()
- {
- return Math.Sqrt(a+b);
- }
- public int Square()
- {
- return (int)Math.Pow(a, b);
- }
- // Метод, не являющийся частью интерфейса
- public int Pow()
- { return (int)Math.Pow(a, b); }
- public int GetA()
- { return a; }
- public int GetB()
- { return b; }
- }
- class A
- {
- static void Main()
- {
- Console.Write("Введите a:");
- int a = Convert.ToInt32(Console.ReadLine());
- Console.Write("Введите b:");
- int b = Convert.ToInt32(Console.ReadLine());
- Calculate obj1 = new Calculate(a, b);
- Calculate obj2 = new Calculate(a, b);
- Console.WriteLine("{0} + {1} = {2}", obj1.GetA(), obj1.GetB(), obj1.Add());
- Console.WriteLine("{0} - {1} = {2}", obj1.GetA(), obj1.GetB(), obj1.Sub());
- Console.WriteLine("{0} * {1} = {2}", obj2.GetA(), obj2.GetB(), obj2.Mul());
- Console.WriteLine("{0} / {1} = {2}", obj2.GetA(), obj2.GetB(), obj2.Div());
- Console.WriteLine("({0} + {1})^0.5 = {2}", obj2.GetA(), obj2.GetB(), obj2.Radical());
- Console.WriteLine("{0} ^ {1} = {2}", obj2.GetA(), obj2.GetB(), obj2.Square());
- Console.ReadKey(true);
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д