读书人

小白问个继承的小疑点

发布时间: 2012-04-02 19:58:59 作者: rapoo

小白问个继承的小问题
就是有个父类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的方法放在那个子类中去

读书人网 >C#

热点推荐