// Example: // An employee is both a boss and a subordinate // Approximating Multiple Inheritance in Java // Using interface and/or composition // (Ref https://ioflood.com/blog/java-multiple-inheritance/) // (Ref https://en.wikipedia.org/wiki/Composition_over_inheritance) //==================== interface IBoss { public void award(); } interface ISubordinate { public void work(); } class Boss implements IBoss { public void award() {System.out.print("I give award. ");} } class Subordinate implements ISubordinate{ public void work() {System.out.print("I work. ");} } //==================== class Employee implements IBoss, ISubordinate{ private Boss b = new Boss(); private Subordinate s = new Subordinate(); public void award() {b.award();} public void work() {s.work();} } //==================== class Main { public static void main(String[] args) { Employee p = new Employee(); p.work(); p.award(); } } //====================