Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace Dziedziczenie_II
- {
- class Program
- {
- static void Main(string[] args)
- {
- MyClass mc = new MyClass("test");
- MyOtherClass moc = new MyOtherClass();
- Test.PrintCounterA(mc);
- Test.PrintCounterB(mc);
- ClassA a = new ClassA();
- ClassB b = new ClassB();
- Test.PrintCounterA(mc);
- Test.PrintCounterB(mc);
- Test.PrintName(mc);
- Test.PrintName(moc);
- MyClass.DestroyObject(mc);
- Test.PrintCounterA(mc);
- Test.PrintCounterB(mc);
- MyClass.DestroyObject(moc);
- mc.PrintCounter(typeof(ClassA));
- mc.PrintCounter(typeof(ClassB));
- mc.PrintCounter(typeof(string));
- mc.Print(2);
- (mc.Create("new MyClass") as MyClass).Print();
- System.Console.Out.WriteLine(mc == ((MyClass)mc.Create("test")));
- }
- }
- interface InterfaceA
- {
- int Counter { get; }
- }
- interface InterfaceB
- {
- int Counter { get; }
- }
- class ClassA
- {
- protected static int counter;
- public ClassA()
- {
- counter++;
- }
- virtual public string GetMyName()
- {
- return "ClassA";
- }
- }
- class ClassB : ClassA
- {
- new protected static int counter;
- protected string text;
- public ClassB()
- {
- counter++;
- text = "";
- }
- protected ClassB(string text)
- {
- counter++;
- this.text = text;
- }
- virtual public Object Create(string text)
- {
- return new ClassB(text);
- }
- }
- class Test
- {
- public static void PrintCounterA(InterfaceA a)
- {
- System.Console.Out.WriteLine(a.Counter);
- }
- public static void PrintCounterB(InterfaceB b)
- {
- System.Console.Out.WriteLine(b.Counter);
- }
- public static void PrintName(ClassA a)
- {
- System.Console.Out.WriteLine(a.GetMyName());
- }
- }
- class MyClass : ClassB, InterfaceA, InterfaceB
- {
- public MyClass(string GLADos)
- {
- this.text = GLADos;
- }
- public void PrintCounter(Type type)
- {
- if (type.IsAssignableFrom(typeof(ClassA)))
- {
- System.Console.Out.WriteLine(ClassA.counter);
- System.Console.Out.WriteLine("\n");
- }
- else
- {
- if (type.IsAssignableFrom(typeof(ClassB)))
- {
- System.Console.Out.WriteLine(ClassB.counter);
- System.Console.Out.WriteLine("\n");
- }
- else
- {
- System.Console.Out.WriteLine("NULL");
- }
- }
- }
- public override string GetMyName()
- {
- Console.WriteLine(GetMyName());
- Console.WriteLine("MyClass");
- Console.WriteLine(text);
- return (GetMyName() + "MyClass" + text);
- }
- public static void DestroyObject(Object o)
- {
- if (o == (typeof(ClassA)))
- {
- counter--;
- }
- else
- counter--;
- }
- public string Print()
- {
- return (GetMyName());
- }
- public void Print(int caroline)
- {
- int i = 0;
- while (i < caroline)
- {
- Console.WriteLine(GetMyName());
- }
- // get{return ClassB.counter}
- }
- int InterfaceA.Counter
- {
- get { return ClassA.counter; }
- }
- int InterfaceB.Counter
- {
- get { return ClassB.counter; }
- }
- }
- class MyOtherClass : ClassA
- {
- string GetMyName()
- {
- return (GetMyName() + "MyOtherClass");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement