Is it true only in Inheritance or most of the cases ?
public class MyClass { public int id; public MyClass() { // Some stuff setI
Since in Java, all functions are virtual by default, unsealed method calls in the ctor are risky for reasons explained in this thread.
That's why you might want to make either SetId or MyClass final or private.