human
Solve the following python programming problem given the following code:
# Abstract Classes

class shape2D:
    def area(self):
        raise NotImplementedError()
        
class shape3D:
    def volume(self):
        raise NotImplementedError()
        
sh1 = shape2D()
sh1.area()

class shape2D:
    def area(self):
        raise NotImplementedError()
        
class shape3D:
    def volume(self):
        raise NotImplementedError()

class Square(shape2D):
    def __init__(self,width):
        self.width = width
        
    def area(self):
        return self.width ** 2
    
s1 = Square(2)
s1.area()
Given the above code, generate some markdown instructions for it.
assistant
#Here is the Python code you requested.

Abstract Classes and Interfaces
Abstract classes are not intended to be instantiated because all the method definitions are empty – all the insides of the methods must be implemented in a subclass.
They serves as a template for suitable objects by defining a list of methods that these objects must implement.