interface_abstract_class.htm |
Abstract class is an incomplete class, which is expected to be changed down the road and must be inherited by a class and a method override method will do the job |
//csc interface_abstract.cs using System; namespace soccer { interface team { string method_1(string str); string method_2(string str); } //abstract class A : team //note the error when a method is abstract and class in not an abstract class A : team { |
You must override the method |
//csc interface_abstract_1.cs using System; namespace soccer { interface team { string method_1(string str); string method_2(string str); } //abstract class A : team //note the error when a method is abstract and class in not an abstract abstract class A : team { public abstract string method_1(string str); public abstract string method_2(string str); } class B : A { //public override string method_1(string str) { Console.WriteLine(" Hello : " + str); return str;} public string method_1(string str) { Console.WriteLine(" Hello : " + str); return str;} public override string method_2(string str) { Console.WriteLine(" Hello : " + str); return str ;} } class test: B { public static void Main(string[] args) { Console.WriteLine("Player for team 1 : "); string s1 = Console.ReadLine(); Console.WriteLine("Player for team 2 : "); string s2 = Console.ReadLine(); B b = new B(); b.method_1(s1); b.method_2(s2); } } } |
now let us correct all the code and compile//csc interface_abstract.cs using System; namespace soccer { interface team { string method_1(string str); string method_2(string str); } abstract class A : team { public abstract string method_1(string str); public abstract string method_2(string str); } class B : A { public override string method_1(string str) { Console.WriteLine(" Hello : " + str); return str;} public override string method_2(string str) { Console.WriteLine(" Hello : " + str); return str ;} } class test: B { public static void Main(string[] args) { Console.WriteLine("Player for team 1 : "); string s1 = Console.ReadLine(); Console.WriteLine("Player for team 2 : "); string s2 = Console.ReadLine(); B b = new B(); b.method_1(s1); b.method_2(s2); } } } |
Now let us return the output from the method to the caller//csc interface_abstract_return.cs using System; namespace soccer { interface team { string method_1(string str); string method_2(string str); } abstract class A : team { public abstract string method_1(string str); public abstract string method_2(string str); } class B : A { public override string method_1(string str){ return str;} public override string method_2(string str){ return str ;} } class test: B { public static void Main(string[] args) { Console.WriteLine("Player for team 1 : "); string s1 = Console.ReadLine(); Console.WriteLine("Player for team 2 : "); string s2 = Console.ReadLine(); B b = new B(); Console.WriteLine(" Hello : " + b.method_1(s1)); Console.WriteLine(" Hello : " + b.method_2(s2)); } } } |