C# 子类使用父类属性 发生(未将对象引用设置到到对象的实例)

作者&投稿:主荔 (若有异议请与网页底部的电邮联系)
新建父类引用到子类对象实现子类转换为父类类型后,子类对象所拥有的父类没有的属性是否会消失?~

这个不会消失,但是父类看不到子类的属性,也就是说调用不到的。
但是如果你把 个由子类转换来的父类引用交给一个子类时,属性就可以调用了。
如:
// Child有一个父类没有的属性x
Child c = new Child();
Parent p = c;
System.out.println(p.x); //这里在编译时会报错,因为对Parent类来说,是没有x这个属性的。
Child cc = p;
System.out.println(cc.x); // 转换回来后,可以正常调用并且得到值。

关于地址的问题。因为赋值操作都是把地址交给不同的变量,只是变量的指向变化了,而地址是没有发生改变的。

父类不能调用子类特有的方法

public BasicSpot PlateSpot
{
get { return _PlateSpot; }
set { _PlateSpot = value; }
}
没这么用过啊 ,不过你这如果类里面有多个属性,你这个value到底传给谁啊~~至少也得是个Datatable什么的传进去把~~

SurfacePlate px = new SurfacePlateX(); //子类实例化建议使用这个方法
子类方法中调用父类属性(PlateSpot.X = x; ) 这里的PlateSpo没有实例化吧。难道.X是静态的?如果不是请改为
(base.X = x; ) //base就是调用基类的东西

看了半天没明白你想表达什么。你主要的疑问是运行报错说子类访问了父类的属性。那么你最好另写一个最精简的例子,贴全代码,让大家复制下来运行就直接能看到你说的错误。花这么大篇幅写你那些毫不相关的变量或者调试过程都是白费。


武进区17329736187: C# 子类使用父类属性 发生(未将对象引用设置到到对象的实例) -
闫阅欣咯: 看了半天没明白你想表达什么.你主要的疑问是运行报错说子类访问了父类的属性.那么你最好另写一个最精简的例子,贴全代码,让大家复制下来运行就直接能看到你说的错误.花这么大篇幅写你那些毫不相关的变量或者调试过程都是白费.

武进区17329736187: C#子类继承父类,为什么调用父类构造方法初始化属性会影响到子类? -
闫阅欣咯: 编译过程中,先编译构造方法.也就是说运行时,构造方法已经被加载了.此时name值已经是张三了

武进区17329736187: C#中,实例化子类对象,怎样调用父类构造方法? -
闫阅欣咯: 1、没有父类代码; 2、父类的各属性只能内部构造,不能在子类逐个赋值; 3、base在子类构造方法中调用父类构造方法失败,编译时找不到; 4、public MyClass( string p1, string p2 ):base(){}这种写法编译通过,运行后却没有效果.

武进区17329736187: C#中子类可以使用父类的静态属性和方法叫继承么? -
闫阅欣咯: 静态具有全局的概念,不属于了单个的类实例化对象,而是属于类整体,所以不存在继承静态成员这个说法,但是基类的派生类可以使用基类的静态成员(用类级别实现).

武进区17329736187: C#子类的引用可不可以调用父类的方法? -
闫阅欣咯: 刚刚才回答了一次,现在又遇到一个. .net处理这种问题有两种机制:1,子类使用new关键字屏蔽父类的方法,则调用谁的方法由“定义时的类型决定”;2,子类使用override关键字重写父类方法,则调用谁的方法由”运行时引用真实的对象决定“. 如果你用让它调用A的方法,很简单,让它引用A的对象.例如: B pro=new A(); pro.show();

武进区17329736187: C# 子类中调用父类成员的关键字是什么? -
闫阅欣咯: 使用base.调用父类里面的属性 public class parent { public string a; } public class child :parent { public string getparent() { return base.a; } }

武进区17329736187: 求解一个C#继承,如何子类的在方法里面用父类字段的内容?
闫阅欣咯: 在子类中用Base.父类中的方法()就可以

武进区17329736187: 大虾们,C#中子类可以调用父类的变量吗? -
闫阅欣咯: 我也刚学,我不知道你写这段具体实现什么,计算字符串的长度? 还有如果字类调用父类变量,可以在在父类的构造函数中进行初始化,比如 public class a { protected string aid; public a(string aids) { this.aid = aids; } } 子类就可以调用父类的构造函数,不知道对不对,在把你问题补充下.

武进区17329736187: C# 在子类中实例化父类对象,然后用父类对象访问父类中protected属性或方法 -
闫阅欣咯: 看来题主没理解 protected 关键字到底是干嘛的呀.protected 是既不同于 public 的全公开、也不同于 private 的全不公开的,是一种半公开控制级别,外界无法直接访问这个控制级别的成员,但是派生类的 base 指针可以获得访问能力.

武进区17329736187: c# 调用父类方法的问题 -
闫阅欣咯: 你这样写了的话,要调用父类的方法你只能显式的调用 base.print();//像这样 如果没有写这一句的话,你默认调用的就是父类的方法(子类继承父类的公共方法,也可以说是子类自己的方法) print();//可以直接调用父类的方法 倘若按你现在的样子直接调用 print(); 将是调用你这个类的中的print()方法,也就是所谓的子类中的print()方法,它在这里将不作操作.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网