Application A is built on Application B - Application A now inherits 'every rule' that is in Application B.
Example: Application B has a custom case search gadget. You can either create the same gadget in Application A (if it's stand-alone application and not built on Application B), or you can build your application A on B, and start using that functionality (and even can override it in Application A ruleset).
@N.SenSharma Correct me if I am wrong - inheritance happens through either Pattern or Direct both of which don't need Build on Application. If I want to use reuse an existing capability, e.g. search gadget, can I just not import the rulesets containing that functionality?
Inheriting functionality is not same as class inheritance; class inheritance is needed when you need to extend/customize any of the functionality/rule of built on application.
A good example would be the following -
Any application that you create is built on PegaRULES applcaution. You create your work classes by inheriting from work-cover- as you need to create your functionalities by reusing the rules from Work-Cover-. Had you not built your application on PegaRULES (the otherwise is actually not possible), you could not be able to establish the class inheritance at the first place.
In some scenario you might not even to setup class inheritance as you will (in most of the cases) reuse the same functionality of built on application as is. As an example, think about the OOTB search gadget the appears on the top of your user portal. It is defined in your built on application (PegaRULES)