What is a good design template for using an abstract superclass?

When you create a subclass of a class, when you want to make a superclass abstract, because, according to my knowledge, a superclass can do everything that an abstract class can do. I'm right?

By making it abstract, you simply limit yourself to creating an abstract class.

For example, there are two classes: A and B

class A {


}

class B extends A {


} 

and

abstract class A {


}

class B extends A {


} 

Is there any specific difference?

, ? , , (, Fruit > apple, orange, banana, grape, strawberries ..), - - , ?

, , ? .

+4
3

, abstract , .

,

public abstract class Shape  {
   ...

Shape , , , . , . , , , - .

, , . , , .

public abstract class NumberInRange<N extends Number> 
    public abstract boolean isGreaterThanOrEqualToMinBound(N n_n);

A Number , Comparable. int :

public class IntInRange extends NumberInRange<Integer>  {
   public boolean isGreaterThanOrEqualToMinBound(Integer to_compareTo)  {
      return  (this.compareTo(to_compareTo) >= 0);
   }

, NumberInRange , IntInRange - .


abstract-versus-interface. , ( ). .

... , --... :)

+4

delegation. (.. , , , ). - , - .

- , . , , , , , . Swing .

+2

- . , , . , , Speak, , translate(). , , .. ( ). . . , , Speak translate() . . ,

+1

Source: https://habr.com/ru/post/1528888/


All Articles