Below is a part of a class hierarchy consisting of a lot of classes:
class Shape { }
class Shape2D extends Shape { }
class Shape3D extends Shape { }
class Circle extends Shape2D { }
// ... classes which extends Shape2D
class Cube extends Shape3D { }
// ... classes which extends Shape3D
Implement a method that takes an array of shapes and counts how many objects of classes that extend Shape2D the array contains. Do not count objects of Shape2D, only its subclasses.