inheritance

Combining multiple inheritance mappers

In PeAA, Fowler describes the three different patterns to use when mapping an inheritance hierarchy to a DB. Single table inheritance Class table inheritance Concrete table inheritance I understand the three patterns as described. It is also mentioned that these patterns can be combined for different levels of a hierarchy, for examp...

C#: How do I call a static method of a base class from a static method of a derived class?

In C#, I have base class Product and derived class Widget. Product contains a static method MyMethod(). I want to call static method Product.MyMethod() from static method Widget.MyMethod(). I can't use the base keyword, because that only works with instance methods. I can call Product.MyMethod() explicitly, but if I later change Widg...

Inherit from a class or an abstract class

If you have several classes where you want them to inherit from a base class for common functionality, should you implement the base class using a class or an abstract class? ...

Abstract vs real class inheritance in C#

I am wondering if there are any differences to derived classes when using abstract vs real classes for inheritance? It looks to me like the real class inheritance creates an hierarchy whereas abstract class inheritance is just copy-paste code for the compiler to derived classes? Does the abstract class creates a hierarchy? Can it be ac...

Inheritance problems with Entity Framework (table per type)

For part of the project I'm currently working on, I have a set of four tables for syndicatable actions. One table is the abstract base for the other three, and each table is represented in my EF model like so: There are two problems that I'm currently facing with this, however. The first problem is that Actor (a reference to a User) a...

Accessing inherited variable from templated parent class

Consider the following code: template<class T> class Foo { public: Foo() { a = 1; } protected: int a; }; template<class T> class Bar : public Foo<T> { public: Bar() { b = 4; }; int Perna(int u); protected: int b; }; template<class T> int Bar<T>::Perna(int u) { int c = Foo<T>::a * 4; // This works return (a + b) * u...

weird C# compiler error: cyclic inheritance

I came across the following error a few days ago, in one of our C# applications here at work. Here's how the error message looks like: "Inherited interface '...ResourceManager.ResourcesManager' causes a cycle in the interface hierarchy of '...ResourceManager.IResourcesManagerView' in D:...\Common\ResourceManager\IResourcesManagerView.cs...

Unexpected behaviour of inheritance and interfaces in c#

Today, while implementing some testclasses in c#, I stumpled on some questions regarding inheritance (and interfaces) in c#. Below I have some example code to illustrate my questions. interface ILuftfahrzeug { void Starten(); } class Flugzeug : ILuftfahrzeug { public void Starten() { Console.WriteLine("Das Flugzeug ...

WebService, WebMethod and Inheritance

In a Web Service context, I have the following class which inherit from the class Mammal. The Mammal class is defined in a proxy. I cannot change the definition of that class. Because I need to add some methods to the class Mammal on the client side, I inherited Mammal and created Giraffe. namespace TestApplication { public class ...

Wrapping a data structure

I have a data structure that I want to access / modify in different ways in different situations. I came up with this: class DataStructure { public: int getType(); private: // underlying data containers }; class WrapperBase { public: void wrap(DataStructure *input) {dataStructure = inp...

Abstract base class or Interface? Neither seem right.

Given the following code: using System.Collections.Generic; static class Program { static void Main() { bar Bar = new bar(); baz Baz = new baz(); System.Console.WriteLine( "We have {0} bars, rejoice!", bar.Cache.Count); } } public abstract class foo { public static List<foo> Cache = new List<foo>(); } public class bar : f...

Constructors and Inheritance

Lets take an example in C# public class Foo { public Foo() { } public Foo(int j) { } } public class Bar : Foo { } Now, All the public members of Foo is accessible in Bar except the constructor. I cannot do something like Bar bb = new Bar(1); Why the constructors are not inheritable? UPDATE I do understand we can chain...

Process Priority inheritance

Hi, imagine that you have a process A running with priority AboveNormal that starts another process B without specify the priority. Is the priority of the process B inherited from the priority of the process A? So, what will be the priority on the process B? AboveNormal, Normal or another? ...

Add 'set' to properties of interface in C#

I am looking to 'extending' an interface by providing set accessors to properties in that interface. The interface looks something like this: interface IUser { string UserName { get; } } I want something like this: interface IMutableUser : IUser { string UserName { get; set; } } I ne...

Inheriting from a UserControl abstract subclass

Hi guys, I have a set of UserControls that need to have a few similar properties. Thus I have defined an abstract subclass of UserControl that defines these properties and updated the .xaml.cs and .g.cs files to inherit from this base class. All compiles well and runs well. Great! But.... .g.cs files are generated and will be regenerated...

Why does e.g. Object inheritsFrom: fooobaar return true in Smalltalk?

It seems that the inheritsFrom: method in GNU Smalltalk returns true for every undefined class name sent to it as a parameter. This might make a program very hard to debug, IMHO. Looking at the code for this in the Behavior class, it looks like this: inheritsFrom: aClass [ "Returns true if aClass is a superclass of the receiver" <categ...

Inheritance issues with template classes

Can anyone figure out a nice way to get the following code to work? (This is, once again, an incredibly simplified way of doing this) template <class f, class g> class Ptr; class RealBase { }; template <class a, class b, class c = Ptr<a,b> > class Base : public RealBase { public: Base(){}; }; template <class d, class e> class D...

Workaround for creating a generic list of Type<SuperClass> and populate it with derived classes?

I want to make a List and add derived classes to this list. I see here that this is not possible by design in .NET: http://msdn.microsoft.com/en-us/library/aa479859.aspx#fundamentals_topic12 So what is the best practice solution to this? I guess I can box my derived classes to make them look like my superclass but that feels a little ...

Inheritable only inside assembly in C#

In C# Is there way to specify a class to be inherited only by a class present in the same assembly and for other assemblies should behave like a public sealed type. ...

Polymorphism AND type safety in parallel inheritance chains

I have two parallel inheritance chains: Chain1: Animal <- Lion <- Gazelle Chain2: Food <- Meat <- Grass I want to implement the "Eats" polymorphic property on Animal. This is how it looks like: public abstract class Animal { public abstract Food Eats { get; set;} } public class Lion : Animal { public override F...