C# Programming - Interfaces - Discussion
Discussion Forum : Interfaces - General Questions (Q.No. 1)
1.
Which of the following statements is correct about the C#.NET code snippet given below?
interface IMyInterface
{
void fun1();
int fun2();
}
class MyClass: IMyInterface
{
void fun1()
{ }
int IMyInterface.fun2()
{ }
}
Discussion:
15 comments Page 1 of 2.
Mahdi said:
1 decade ago
The answer is wrong because
1.fun2 should return an int value
2. fun1 and fun2 in Myclass should be public
1.fun2 should return an int value
2. fun1 and fun2 in Myclass should be public
VijayaKumar r said:
1 decade ago
It's correct, because if implicit implementation, first function must mark as public before return type, or go for explicit implementation.
Ajay yadav said:
1 decade ago
In this program how could we directly call the method from base class with out creating the obj of the class ! it only be possible while be use static keyword.
Pramod Khandare said:
1 decade ago
No need to give Interface name while giving definition to method void fun1().
Sandeep said:
1 decade ago
fun1() must be public in my class and fun2() must return a value of int type and there is no need to make int IMyInterface.fun2() public because it is explicit implementation which is private to class.
Sudhakar said:
1 decade ago
void IMyInterface.fun1()
int IMyInterface.fun2()
(or)
public void fun1()
public int fun2()
As per multiple choice answer should be 'E'.
int IMyInterface.fun2()
(or)
public void fun1()
public int fun2()
As per multiple choice answer should be 'E'.
Vinit said:
1 decade ago
Answer is correct. Because in interface all the signature are public by default and we can directly use them in derived class. But before declaring them in derived class we must tell that called method is of which interface like it is done in 2nd fun2() method.
Ganesh baba said:
1 decade ago
Yes its a right answer, we need to prefix interface name to a method name only when the same method is declared in another interface. In order to trace out in which interface the method is going to implement. You will understand better in multiple inheritance concept. It sounds complex in vocabulary but read it twice you'll get.
Manoj said:
1 decade ago
Missing access specifier in implementation of fun1()
It should be:
interface IMyInterface
{
void fun1();
int fun2();
}
class MyClass: IMyInterface
{
public void fun1()
{ }
int IMyInterface.fun2()
{ }
}
or
interface IMyInterface
{
void fun1();
int fun2();
}
class MyClass: IMyInterface
{
void IMyInterface.fun1()
{ }
int IMyInterface.fun2()
{ }
}
It should be:
interface IMyInterface
{
void fun1();
int fun2();
}
class MyClass: IMyInterface
{
public void fun1()
{ }
int IMyInterface.fun2()
{ }
}
or
interface IMyInterface
{
void fun1();
int fun2();
}
class MyClass: IMyInterface
{
void IMyInterface.fun1()
{ }
int IMyInterface.fun2()
{ }
}
Anas said:
1 decade ago
1. The Interface Methods when called in Derived class should be Public.
2. It is not necessary to write Interface.Method() in derived class direct method name with public keyword would suffice.
2. It is not necessary to write Interface.Method() in derived class direct method name with public keyword would suffice.
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers