.
- . , , :
. , ;
. virtual abstract. ;
. , , . . , base. new, .
4.
public class Derived:Found {
protected int debet;
public Derived() {}
public Derived(String name, int cred, int deb): base (name,cred){
debet = deb;
}
public void DerivedMethod(){ //
Console.WriteLine(" Derived");
}
new public void Analysis(){ //
base.Analysis();
Console.WriteLine(" ");
}
public void Analysis(int level){ //
base.Analysis();
Console.WriteLine(" {0}", level);
}
public override String ToString(){ //
return(String.Format(": name = {0}, credit = {1},debet ={2}",name, credit, debet));
}
//
public override void VirtMethod() {
Console.WriteLine (": " + this.ToString());
}
}
. , . ( public). , , .
C# . , .
. , :
public interface IProps{
void Prop1(string s);
void Prop2 (string name, int val);
}
, , , (public).
, (private), :
public class ClainP:IProps{
public ClainP(){ }
void IProps.Prop1(string s) {
Console.WriteLine(s);
}
void IProps.Prop2(string name, int val) {
Console.WriteLine("name = {0}, val ={1}", name, val);
|
|
}
}
:
. , .
. IProps, () ClainP. .
ClainP:
public void MyProp1(string s){
((IProps)this).Prop1(s);
}
public void MyProp2(string s, int x){
((IProps)this).Prop2(s, x);
}
, . , this IProps.
. new , () .
public void TestClainIProps(){
Console.WriteLine(" ClainP !");
ClainP clain = new Clain();
clain.Prop1(" 1 ");
clain.Prop2("", 44);
Console.WriteLine(" IProps !");
IProps ip = (IProps)clain;
ip.Prop1(": ");
ip.Prop2 (": ",77);
}
. , . - .
, . - .
, - - , , . .
, -. . , .
, , - , :
5.
public interface IProps{
void Prop1(string s);
void Prop2 (string name, int val);
void Prop3();
}
public interface IPropsOne{
void Prop1(string s);
void Prop2 (int val);
void Prop3();
}
public class ClainTwo:IProps,IPropsOne {
//
public void Prop1 (string s) { Console.WriteLine(s); }
//
public void Prop2(string s, int x) { Console.WriteLine(s + x); }
public void Prop2 (int x) { Console.WriteLine(x); }
// private 2-
void IProps.Prop3() {
Console.WriteLine(" 3 1");
|
|
}
void IPropsOne.Prop3() {
Console.WriteLine(" 3 2");
}
public void Prop3FromInterface1() { ((IProps)this).Prop3(); }
public void Prop3FromInterface2() { ((IPropsOne)this).Prop3(); }
}
public void TestTwoInterfaces(){
ClainTwo claintwo = new ClainTwo();
claintwo.Prop1(" ");
claintwo.Prop2(".: ",99);
claintwo.Prop2(9999);
claintwo.Prop3FromInterface1();
claintwo.Prop3FromInterface2();
Console.WriteLine(" 1- !");
IProps ip1 = (IProps)claintwo;
ip1.Prop1(" IProps: 1");
ip1.Prop3();
Console.WriteLine(" 2- !");
IPropsOne ip2 = (IPropsOne)claintwo;
ip2.Prop1(" IPropsOne: 1");
ip2.Prop3();
}