Организовать множественное наследование с использованием интерфейсов - 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); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д