首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

小白问个继承的小疑点

2012-04-02 
小白问个继承的小问题就是有个父类CLASS A,有属性path 和 name,完了有子类B 和C 都要继承A这两个属性,还有

小白问个继承的小问题
就是有个父类CLASS A,有属性path 和 name,
完了有子类B 和C 都要继承A这两个属性,还有自己其他的属性

但是父类的name 是可以从path处理的,
就是
Class a
{
  protected info(string path)
  {
  this.path = path;
  this.name = Getname(path);
  }
}

然后在B类继承的时候,可不可以直接也只是传入path,就继承A的name属性呢?

这个应该怎么写啊?另外,A类的属性怎么定义呢?需要定义成抽象类么?

[解决办法]
Getname在父类是公开的话
子类一样的用

[解决办法]
你写的都是啥啊
[解决办法]
然后在B类继承的时候,可不可以直接也只是传入path,就继承A的name属性呢?


可以:子类通用父类构造器来构造

这个应该怎么写啊?另外,A类的属性怎么定义呢?需要定义成抽象类么?
直接子类的初始化函数后加构造器来完成

A类的属性自己定义,不需要定义为抽象的。
[解决办法]
没怎么看明白什么意思,好像你的意思是说,子类继承父类方法处理之后的属性值
public class a
{
protected virtual info(string path)

this.path = path;
this.name = Getname(path);

}


public class b:a{
protected override info(string path)
{
base.info(path);//这里是调用的父类的方法

}
}

[解决办法]
子类继承了父类的除private方法和属性。
[解决办法]
public setinfo(string a,string b):base(a){}这样可以。
[解决办法]

C# code
    abstract class A    {        protected virtual void Info(string path)        {            this.Path = path;            this.Name = path + "11111";        }        protected string Path { get; set; }        protected string Name { get; set; }    }    class B:A    {        internal void ShowName()        {            this.Info("abc");            Console.WriteLine(this.Name);        }    }
[解决办法]
你的意思是重载么?
[解决办法]
真不是很懂,貌似你可以用super的方法放在那个子类中去

热点排行