如何从单个基类继承2个类?我以为......
class Attributes : Student, Teacher
{
// insert code here
}
..会起作用,但不起作用。有帮助吗?
答案 0 :(得分:1)
C#中没有多重继承。您必须使用组合和(可选)接口继承。
答案 1 :(得分:0)
如果你需要"让2个类继承自单个基类" 而你的基类是Attributes
,那么:
public class Student : Attributes
{
// insert code here
}
public class Teacher : Attributes
{
// insert code here
}
C#不支持多重继承。
Here关于C#
继承的一些基础知识答案 2 :(得分:0)
C#不支持从多个类继承。事实上,任何完全面向对象的语言(如java)也不支持多重继承。原因是,多重继承会导致钻石问题。
为避免此问题,完全OO为多接口继承提供支持。
public interface IStudent
public interface ITeacher
class Attributes :IStudent, ITeacher
其他人指出的另一种方法是使用构图。
class student{}
class Teacher{}
Class Attributes
{
private Teacher teacher;
private Student student;
}
答案 3 :(得分:0)
多重回复:
我建议你看一下你真正需要的东西。正如其他人所指出的那样,组合或多个接口的实现可能就是答案。
另外,你的问题很混乱。代码示例显示了继承两个超类(Attribute
,Teacher
)的类(Student
)。但是描述询问你是否可以这样做:
class Teacher : Attribute
{ }
和
class Student : Attribute
{ }
答案 4 :(得分:0)
考虑Student
和Teacher
之间的共同点,并将其置于界面中
public interface IAttributes
{
public string Name { get; }
}
public class Student : IAttributes
{
}
public class Teacher : IAttributes
{
}
或者你可以封装
public class Attributes
{
public Student Student { get; }
public Teacher Teacher { get; }
}
这是一个与第一个完全不同的模型。