Questions tagged [inheritance]
Inheritance is a way to reuse code of existing objects, or to establish a subtype from an existing object, or both, depending upon programming language support.
582 questions
2
votes
2
answers
264
views
Is it ok to extend utilities?
Apache Commons has StringUtils. It's great, but I wish it had a shuffle() method or similar
Is it ok to create my own StringUtils that extends Apache's StringUtils and adds the method (Apache's class ...
2
votes
3
answers
232
views
"use auto" and "declare most abstract type", which guideline has higher priority?
According to Why define a Java object using interface (e.g. Map) rather than implementation (HashMap), I know I should declare most abstract type when possible, for example, suppose I'm using an UI ...
0
votes
2
answers
103
views
Modeling value object when fields' existence depends on state of other fields
I am practicing tactical DDD and having trouble as exemplified below. Fundamentally, whether some fields of the value object should be nullable depends on another field of the same value object. ...
5
votes
2
answers
725
views
Is "using active record pattern" a reason to inherit from standard container (eg:vector)?
According to Is it bad practice to use Inheritance to associate methods with a basic container?, I know it is bad to inherit form std containers, mainly because std containers are not designed to be ...
1
vote
3
answers
228
views
In "Liskov Substitution Principle", is "invariants can't be weakened in a subtype" a kind of "postconditions can't be weakened in a subtype"?
According to Invariant rule in Liskov Substitution Principle, I know one of the form of violation of "Liskov Substitution Principle" is violating "invariants can't be weakened in a ...
5
votes
4
answers
2k
views
If class B extends A, can we say that B depends on A?
Let's say we have 2 (Java) classes:
class A {}
class B extends A {}
To me, saying B extends A and B is dependent on A are both true (but not equivalent) in this situation. My colleague, OTOH, says ...
3
votes
1
answer
282
views
Object-oriented programming design with relational database tables
I want to understand what is considered best-practice to better align with OOP when handling relational databases. I cannot find any online examples where classes and a more maintainable/re-usable ...
1
vote
1
answer
189
views
Inheriting a logger
When you define a class, is inheriting a logger such as log4cxx a good design?
Assume I am defining a class called MyClass.
When I want a logger, I use a pointer to an abstract logger class as a ...
-2
votes
3
answers
190
views
Class inheritance design with protected methods and run time base handlers
Using C#, I got a class called BaseConfigurations which handles CRUD operations. This class also contains a protected method which is used inside the CRUD handling methods:
public class ...
1
vote
4
answers
779
views
What's the alternative to trying to inherit static methods?
I know you can't inherit static methods, and it seems the consensus is that if you feel like you need to, you're doing something wrong.
However, I don't know what the alternative is in my case. Please ...
24
votes
11
answers
8k
views
Is it logical to not use inheritance because the function is critical?
Our codebase has a typical base-class with a ton of sub-classes. The base-class already has many default functions for the sub-classes.
However, one particular function has the same verbatim ...
0
votes
5
answers
2k
views
Comparing Java objects with different member variables
I have a base class "People" which two other classes inherit from: Employee and Student. The Student class includes a GPA (type double) and the Employee class does not. I have an ArrayList ...
0
votes
1
answer
1k
views
Why are sealed classes not allowed to be mocked?
Using Moq framework, it is not allowed to mock a class in C# which is sealed. Same goes for many other frameworks as well. But why is it not allowed?
0
votes
2
answers
354
views
Does Clean Code suggest avoiding all base class instance variables (include private instance variables)?
According to Why is Clean Code suggesting avoiding protected variables?, I should avoid protected variables because of the reason : "closely related concepts should not be separated into ...
1
vote
5
answers
677
views
How does inheritance lead to higher coupling than composition?
One major reason for using composition over inheritance is, that inheritance leads to higher coupling. How is that?
In both cases members are exposed to the subclass (in case of inheritance) or ...
2
votes
2
answers
144
views
What is the threshold of "usage" of a parent class member that should move to child class?
For example, for base and child classes, if all child class need a class member, eg: baseHp, which represents the base hp to calculate the actual hp of monsters in a game:
public class Monster{
...
2
votes
2
answers
396
views
In "Liskov Substitution Principle", are "Preconditions can't be strengthened in a subtype" & "Postconditions can't be weakened in a subtype" the same?
According to Is this a violation of the Liskov Substitution Principle?, as I understand, the top answer currently says the code below is violating "Liskov Substitution Principle":
public ...
15
votes
6
answers
6k
views
Why is it necessary to mark classes as not inherited from? Can't an optimizer automatically detect that virtual calls are unnecessary?
In C# and C++, an apparent trend is in place to reduce / avoid inheritance:
C#: "Sealing types can improve performance."
https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/...
0
votes
2
answers
202
views
For non-container classes, are "better naming" and "ready for commented codes" good reasons not to declare the most abstract type?
According to Why define a Java object using interface (e.g. Map) rather than implementation (HashMap), I know I should declare the most abstract type possible, but the question is about template class ...
2
votes
2
answers
419
views
Composition over inheritance: how data are accessed in the composition case?
I've been reading this Wikipedia article Composition over inheritance. It gives a code example of inheritance first, and then a code example of composition. In case of inheritance there are data that ...
0
votes
0
answers
49
views
Should I add new method to the interface to use it more commonly or just separate the new logic completely
I have a CouponReservationService in an e-commerce project.
It is called when a coupon is reserved to be applied to a basket. It checks that whether the coupons are already reserved. If they are ...
0
votes
0
answers
518
views
What is the Best Practice for handling multiple Entities that behave identically?
Because I have multiple entities with unique fields, I need multiple repositories for each one even though each Entity will be handled exactly the same. What is the best way to handle these separate ...
2
votes
2
answers
259
views
Pattern for a base class to do pre-validation and/or post-processing on a deriving class's overridden method?
I have the following pattern repeating itself in multiple places:
abstract class Database {
void connect() {
this.setStatus( CONNECTING )
try {
await this.realConnect()
}
catch ...
1
vote
1
answer
185
views
Is it an acceptable pattern to put derived classes inside an abstract base class in Java?
Suppose I have some Java code such as the following (in this case, the use of the name "interaction" is referring to interacting with an object in a video game):
public abstract class ...
0
votes
1
answer
100
views
How to refactor parallel inheritance tree?
I have a (php) program, which must change yearly. This program calculates tax for every year and there are sometime changes in requirements.
First, the user fills their incomes, expenses, etc.
Then ...
-1
votes
3
answers
560
views
Is it better to override methods in classes or make methods general?
I am creating the backend of a microservice that will serve as a tool to see in real time how the company's employees are distributed by projects and what days they have assigned to each one. The ...
0
votes
1
answer
283
views
Exposing only the getters of a singleton interface in C++
I've got a file in my includes folder, which is the folder I expose, that isn't used externally and isn't supposed to be used too. When I noticed that and tried to remove it - I noticed that it's ...
2
votes
2
answers
210
views
Explain forbidden inheritance across the domain dimensions of representation/implementation vs semantics
I am going through this nice write up on thoughtworks about inheritance vs composition. I understood the authors explanation of the dual purpose of inheritance. But, I am confused on the specific ...
16
votes
6
answers
6k
views
Why can't a mutable interface/class inherit from an immutable one?
I've heard people say things like "B can't inherit from A because A is immutable and B is mutable".
My understanding of inheritance in Object-Oriented Programming is that you use it to add ...
21
votes
6
answers
6k
views
Does subclassing int to forbid negative integers break Liskov Substitution Principle?
In Python 3, I subclassed int to forbid the creation of negative integers:
class PositiveInteger(int):
def __new__(cls, value):
if value <= 0:
raise ValueError("value ...
-1
votes
1
answer
702
views
What is the use of Multiple Inheritance in languages like C++ and Python?
C++ and Python are the only two languages I know supporting multiple Inheritance. Other object oriented languages I have seen like Java and Ruby do not support multiple inheritance. Even the front-end ...
2
votes
4
answers
606
views
Large Inheritance Hierarchy vs. One Object With Many Nullable Fields
I am working on implementing some stock order types for a financial technology application. There are six different types of stock orders - market, limit, stop_loss, stop_loss_limit, trailing_stop, ...
0
votes
2
answers
1k
views
Inheritance/Composition VS "Direct Injection Construction"
my following example seems to go into the direction Inheritance VS Composition. But that's not, what i want to ask. I see the concept Inheritance and Composition on one side and the alternative, which ...
0
votes
3
answers
783
views
How to handle subclasses needing different method signatures for the overriden function?
I have an abstract class that represents chess pieces, it has an abstract method isMoveValid(Square futurePosition, PieceColor color) which checks if the piece moving to that square is valid or not, ...
2
votes
3
answers
566
views
Object Oriented Programming - what is the best way to add new parameters?
I have a doubt about what would be the right OOP approach for implementing classes that do similar stuff with different parameters.
To provide a simple example, I would use two polynomial classes, ...
2
votes
4
answers
332
views
Database design - how to model database tables for similar objects - booleans / enums / inheritance / archived vs active
I only recently started to work with backends. My database is supposed to store information about maven-like artifacts. There are going to be applications and configuration artifacts. Now those ...
1
vote
2
answers
285
views
How to design relationships with constraints on subclass type?
I'm developing a full-stack Rest application following a narrative description of a working context. There is a class Job with two subclasses Job_A and Job_B. Job_A produces Report_A while Job_B ...
50
votes
7
answers
10k
views
Why is inheritance bad in a Person-Student model?
I've just started learning about Inheritance vs Composition and it's kind of tricky for me to get my head around it for some reason.
I have these classes:
Person
class Person
{
public string Name {...
8
votes
4
answers
2k
views
Are there any legitimate use cases for protected visibility?
Protected visibility in languages like C++, Java or PHP is a strange beast: it makes fields and methods accessible in subclasses, but not in code completely outside the class.
It strikes me as ...
2
votes
3
answers
1k
views
Should classes with business logic inherit from a class with helper methods, or vise-versa?
I have a codebase where some classes contain both "essential" business logic, and "incidental" complexity. I am considering a refactor where I leverage inheritance to improve the ...
-1
votes
2
answers
177
views
Is an abstract role needed to ensure that a customer can only have one role out of several? [closed]
I have the following UML class diagram in a C++ context. I want to make sure that a Customer can have only one role:
Can the Customer now only assume one role, and what does <<abstract>> ...
0
votes
2
answers
1k
views
How to concretize a return type when inheritance is used?
I have two repositories:
class RepositoryOne
{
/**
* @param int $id
* @return ModelOne
*/
public function getById($id)
{
// Search and find a ModelOne model in the ...
0
votes
2
answers
555
views
How to solve an issue when a decorator needs variables from the base class?
I have a service class that does some magic. I want to introduce a new type of functionality - raise an event. I am absolutely sure that decorator pattern is great for this scenario. The problem is ...
3
votes
2
answers
1k
views
Is inheritance constraint on Generics redundant? If not what is its recommended use?
I've recently found myself using a generics with constraint that a type should inherit from a specific base class, but now I've just realised that this is redundant and unnecessary because the ...
5
votes
2
answers
1k
views
Design classes to model 3D scanned faces of ancient Greek/Roman sculptures: is multiple inheritance a good design solution?
I would like to deepen the topic of multiple inheritance using Python and I usually find examples that are too simple. I love art and I imagined the following problem and I want to understand if ...
0
votes
1
answer
255
views
Wrapping the UI framework
I want to write an application where I would delegate certain functionalities to 3rd party libraries. To make sure the code remains modular, I want to put these libraries behind an interface so I can ...
-1
votes
1
answer
821
views
Subclasses with same behaviour but different attributes for different inputs
Say I have two object types of the same interface MyObj (I am using python in this project so I will use the same for the explanation)
class Foo(MyObj):
a = [5, 10]
class Bar(MyObj):
a = [[1, ...
4
votes
5
answers
441
views
Single Responsibility Principle, Inheritance
I have the following interface:
class IHittable
{
virtual Intersections intersects(const Ray & ray) = 0
}
which will be implemented by various geometric objects(Spheres, Triangles etc).
Now ...
9
votes
6
answers
3k
views
Composition over inheritance when adding functionality to a foreign object
Note: I am not sure of the correct terminology for what I am describing, so if you have suggestions for a better title please feel free to edit it.
"Favor composition over inheritance" is ...
2
votes
2
answers
212
views
How would dispatch work in the Wizards and Warriors "rulebook"?
In Part 5 of Wizards and Warriors, the blog proposes the concept of a "Rule" and rulebook to address the issues with solutions in the previous parts.
One of the issues was the need for ...