C# 如何从基类继承
嗨,我的代码如下C# 如何从基类继承,c#,inheritance,C#,Inheritance,嗨,我的代码如下 public partial class Class1:InheritBase1 { public Class1() { //Access table1 here } } public class InheritBase2 { protected DataTable table1{get;set;} } 我需要从InheritBase2类访问表1到我的类 由于C#不允许多重继承,那么实现这一点的可能方法是什么 谢谢。你可以从这篇作文中获益 cl
public partial class Class1:InheritBase1
{
public Class1()
{
//Access table1 here
}
}
public class InheritBase2
{
protected DataTable table1{get;set;}
}
我需要从InheritBase2类访问表1到我的类
由于C#不允许多重继承,那么实现这一点的可能方法是什么
谢谢。你可以从这篇作文中获益
class A : B {
}
class A : ISampleInterface {
B b;
void SampleMethod() {
b.SampleMethod();
}
}
可替换为
class A {
B b
}
如果希望A和B可以在同一上下文中使用,则需要引入一个接口
该接口允许您定义抽象功能并为其提供各种实现
interface ISampleInterface
{
void SampleMethod();
}
万一我们有
class B : ISampleInterface
{
void SampleMethod() {
//Do some action
}
}
现在,类A可以访问或继承odrder中的表单B,以访问示例方法或使用组合
class A : B {
}
class A : ISampleInterface {
B b;
void SampleMethod() {
b.SampleMethod();
}
}
然后我给你编码,你可以这样使用
ISampleInterface sa = new A();
ISampleInterface sb = new B();
sa.SampleMethod(); //Call B through A
sb.SampleMethod(); //Call B
这只是一个简单的描述,你应该遵循一个关于面向对象编程的教程 你可以从作文中获益
class A : B {
}
class A : ISampleInterface {
B b;
void SampleMethod() {
b.SampleMethod();
}
}
可替换为
class A {
B b
}
如果希望A和B可以在同一上下文中使用,则需要引入一个接口
该接口允许您定义抽象功能并为其提供各种实现
interface ISampleInterface
{
void SampleMethod();
}
万一我们有
class B : ISampleInterface
{
void SampleMethod() {
//Do some action
}
}
现在,类A可以访问或继承odrder中的表单B,以访问示例方法或使用组合
class A : B {
}
class A : ISampleInterface {
B b;
void SampleMethod() {
b.SampleMethod();
}
}
然后我给你编码,你可以这样使用
ISampleInterface sa = new A();
ISampleInterface sb = new B();
sa.SampleMethod(); //Call B through A
sb.SampleMethod(); //Call B
这只是一个简单的描述,你应该遵循一个关于面向对象编程的教程 您可以使用组合而不是继承轻松解决此问题 假设有一个类
a
和一个类B
<代码>A有一个B
public class A
{
public B AssociatedB { get; set; }
}
为什么?
你能详细说明一下吗?凯尔 在面向对象编程中,有两种方法可以创建对象之间的关系。它们中的任何一个都必然具有等级性 如果你最终认为某个对象是某种东西,我们将讨论继承。例如,猫是一种动物。也就是说,猫科动物起源于动物 另一方面,如果你最终认为某个物体有一个X东西,我们将讨论构图。例如,一辆汽车有一个发动机 最后,如果您使用继承来共享对
数据表
的引用,我真的鼓励您使用组合,因为您的类有一个数据表
:
public class A
{
public DataTable Table { get; set; }
}
public class B
{
public DataTable Table { get; set; }
}
DataTable someTable = new DataTable();
// Both class instances share the same DataTable
// because you set the same object to both
// class properties
A someA = new A();
someA.Table = someTable;
B someB = new B();
someB.Table = someTable;
您可以使用组合而不是继承轻松地解决此问题 假设有一个类
a
和一个类B
<代码>A有一个B
public class A
{
public B AssociatedB { get; set; }
}
为什么?
你能详细说明一下吗?凯尔 在面向对象编程中,有两种方法可以创建对象之间的关系。它们中的任何一个都必然具有等级性 如果你最终认为某个对象是某种东西,我们将讨论继承。例如,猫是一种动物。也就是说,猫科动物起源于动物 另一方面,如果你最终认为某个物体有一个X东西,我们将讨论构图。例如,一辆汽车有一个发动机 最后,如果您使用继承来共享对
数据表
的引用,我真的鼓励您使用组合,因为您的类有一个数据表
:
public class A
{
public DataTable Table { get; set; }
}
public class B
{
public DataTable Table { get; set; }
}
DataTable someTable = new DataTable();
// Both class instances share the same DataTable
// because you set the same object to both
// class properties
A someA = new A();
someA.Table = someTable;
B someB = new B();
someB.Table = someTable;
请将类
InheritBase1
显示在一个单独的文件中好吗?使用接口。您不能从多个类继承,但可以实现多个接口。您必须更改设计,或使用允许多个继承的语言。合成可能比继承更好。能否将类InheritBase1
显示在单独的文件中?是否InheritBase2
使用接口。您不能从多个类继承,但可以实现多个接口。您必须更改设计,或者使用一种允许多重继承的语言。也许组合比继承更好。你能详细说明你能详细说明我如何使用接口吗?顺便说一句,我发现这个接口示例有点模糊,因为它显示了如何使对象共享相同的方法(显然,两者都实现相同的接口)。我相信,在一天结束时,无论是否使用接口,都应该提供DataTable
的关联。没有接口就可以解决这个问题:如何使用接口?顺便说一句,我发现这个接口示例有点模糊,因为它显示了如何共享相同的方法(显然,两者都实现了相同的接口)。我相信,在一天结束时,无论是否使用接口,都应该提供DataTable
的关联。它可以在没有接口的情况下解决:D