functional interface examples in java 8

Example 1: what is a child inheritance in python with example

# =============================================================================
# Inhertance
# =============================================================================
class A:
    def feature1(self):
        print('Feature 1 in process...')
    def feature2(self):
        print('Feature 2 in process...')       #Pt.1
        
class B:
    def feature3(self):
        print('Feature 3 in process...')
    def feature4(self):
        print ('Feature 4 in process...')
        
a1 = A() 

a1.feature1()
a1.feature2()

a2 = B()

a2.feature3()
a2.feature4()
# THE ABOVE PROGRAM IS A PROGRAM WITHOUT USING INHERITANCE
        
# WITH THE USE OF INHERITANCE IS BELOW
class A:
    def feature1(self):
        print('Feature 1 in process...')    
    def feature2(self):
        print('Feature 2 in process...')
        
class B(A):
    def feature3(self):
        print('Feature 3 in process...')    # Pt.2
    def feature4(self):
        print ('Feature 4 in process...')
        
a1 = A() 

a1.feature1()
a1.feature2()

a2 = B()

a2.feature3()
a2.feature4()


# NOW TO CHECK OUT THE DIFFERENCE BETWEEN Pt.1
# AND Pt.2 TRY RUNNIG THE CODE ON THE BASIS OF
# INHERITANCE, IN OTHER WORDS TRY RUNNING ONLY 
# B CLASS IN Pt.2 AND THEN RUN ONLY a2
# YOU WILL SEE A DIFFERENCE IN THE RUNNING OF 
# ONLY a2,,,, IT WILL STILL SHOW THAT FEATURE 3
# AND 4 IS IN PROCESS,, THIS MEANS THAT B IS THE

Example 2: comparable on a generic class java

public class DoubleKey<K extends Comparable<K>, J extends Comparable<J>>
        implements Comparable<DoubleKey<K, J>> {

    private K key1;
    private J key2;

    public DoubleKey(K key1, J key2) {
        this.key1 = key1;
        this.key2 = key2;
    }

    public K getFirstKey() {
        return this.key1;
    }

    public J getSecondKey() {
        return this.key2;
    }

    public int compareTo(DoubleKey<K, J> that) {

        int cmp = this.getFirstKey().compareTo(that.getFirstKey());
        if (cmp == 0)
            cmp = this.getSecondKey().compareTo(that.getSecondKey());
        return cmp;
    }
}