namespace AbstractClasses
{
interface ICalculate1
{
}
interface ICalculate2
{
}
interface ICalculate3: ICalculate1, ICalculate2
{
}
abstract class MyClass:MyClass1, ICalculate1,ICalculate2,ICalculate3
{
abstract class MyClass1
{
public int age;
public void Add(int n1,int n2)
{
int sum = n1 + n2 + age;
[Link]("Sum is {0}", sum);
}
public abstract int Sub(int n1, int n2);
}
abstract class MyClass2 : MyClass1
{
public abstract int Prod(int n1, int n2);
}
class MyClass3 { }
class Derived :MyClass2
{
public override int Sub(int n1, int n2)
{
return n1 - n2;
}
public override int Prod(int n1, int n2)
{
return n1 * n2;
}
}
internal class Program
{
static void Main(string[] args)
{
MyClass2 obj2 = new Derived();
[Link](34, 56);
[Link]("Sub is {0}",[Link](23,21));
[Link]("Prod is {0}", [Link](23,4));
}
}
}