05. Generic Inheritance

Generics inheritance is a teeny bit tricky because it's different from regular object inheritance, but we'll have all that cleared up in no time!

Take a look at this code.

Integer b = new Integer();
Number a = b;

It runs just fine since Integer is a subclass of Number.

Now let's try the same logic using generics.

ArrayList<Integer> intList = new ArrayList<>();
ArrayList<Object> objList = intList;  // Compile time error

When we try to compile this, we get and error.

Test.java:9: error: incompatible types: ArrayList<Integer> cannot be converted to ArrayList<Object>

We would think that this would work, because Integer is a subclass of Object. However, it doesn't work because generics do not work like that.

generic inheritance in java

ArrayList<Integer> is not subtype of ArrayList<Object>, even though Integer is a subclass of Object. If we want to use generics on a more general level, we need to use wildcards, which are denoted by a ? symbol.

This a very important concept! Make sure you understand this before moving on.

Learn Enterprise Java Development for a Bright Career

Core Java, Volume I

Learn Enterprise Java Development for a Bright Career Try Java

Designed for serious programmers, this reliable, unbiased, no-nonsense tutorial illuminates key Java language and library features with thoroughly tested code examples. As in previous editions, all code is easy to understand, reflects modern best practices, and is specifically designed to help jumpstart your projects.

$ Check price
59.9959.99Amazon 4.5 logo(70+ reviews)

More Java resources

Take your Linux skills to the next level!

How Linux Works

Take your Linux skills to the next level! Try Linux & UNIX

In this completely revised second edition of the perennial best seller How Linux Works, author Brian Ward makes the concepts behind Linux internals accessible to anyone curious about the inner workings of the operating system. Inside, you'll find the kind of knowledge that normally comes from years of experience doing things the hard way.

$ Check price
39.9539.95Amazon 5 logo(114+ reviews)

More Linux & UNIX resources