add polymorphism example
This commit is contained in:
		
							parent
							
								
									4b159fa22b
								
							
						
					
					
						commit
						429bcc7b3d
					
				@ -0,0 +1,13 @@
 | 
			
		||||
package encapsulationInheritancePolymorphism.polymorphism;
 | 
			
		||||
 | 
			
		||||
public class ElectricEngine extends Engine {
 | 
			
		||||
    private String batteryType;
 | 
			
		||||
 | 
			
		||||
    public int getPower() {
 | 
			
		||||
        return 20;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /*private class Engine {
 | 
			
		||||
        private int power;
 | 
			
		||||
    }*/
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,9 @@
 | 
			
		||||
package encapsulationInheritancePolymorphism.polymorphism;
 | 
			
		||||
 | 
			
		||||
public class Engine {
 | 
			
		||||
    private int power;
 | 
			
		||||
 | 
			
		||||
    public int getPower() {
 | 
			
		||||
        return power;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,9 @@
 | 
			
		||||
package encapsulationInheritancePolymorphism.polymorphism;
 | 
			
		||||
 | 
			
		||||
public class FuelEngine extends Engine {
 | 
			
		||||
    private String fuelType;
 | 
			
		||||
 | 
			
		||||
    public int getPower() {
 | 
			
		||||
        return 50;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,26 @@
 | 
			
		||||
package encapsulationInheritancePolymorphism.polymorphism;
 | 
			
		||||
 | 
			
		||||
/*import encapsulationInheritancePolymorphism.inheritance.ElectricEngine;
 | 
			
		||||
import encapsulationInheritancePolymorphism.inheritance.FuelEngine;*/
 | 
			
		||||
 | 
			
		||||
public class Main {
 | 
			
		||||
    public static void main(String[] args) {
 | 
			
		||||
        /*encapsulationInheritancePolymorphism.inheritance.*/ElectricEngine electricEngine = new ElectricEngine(); // створення нового об'єкту (екземпляру) класу ElectricEngine
 | 
			
		||||
        /*encapsulationInheritancePolymorphism.inheritance.*/FuelEngine fuelEngine = new FuelEngine();
 | 
			
		||||
 | 
			
		||||
        Engine engine1 = fuelEngine;
 | 
			
		||||
 | 
			
		||||
        Engine[] engines = {
 | 
			
		||||
                electricEngine,
 | 
			
		||||
                fuelEngine
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        for (Engine engine : engines) {
 | 
			
		||||
            System.out.println(engine.getPower());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /*for (int i = 0; i < engines.length; i++) {
 | 
			
		||||
            System.out.println(engines[i].getPower());
 | 
			
		||||
        }*/
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,19 @@
 | 
			
		||||
package encapsulationInheritancePolymorphism.polymorphism.enhanced;
 | 
			
		||||
 | 
			
		||||
public class ElectricEngine extends Engine {
 | 
			
		||||
    private String batteryType;
 | 
			
		||||
    private int chargeLevel = 9;
 | 
			
		||||
    private int criticalChargeLevel = 10;
 | 
			
		||||
    private float coefficientCriticalPowerCut = 0.1f;
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public int getPower() {
 | 
			
		||||
        return chargeLevel > criticalChargeLevel
 | 
			
		||||
                ? super.getPower()
 | 
			
		||||
                : (int) (super.getPower() * coefficientCriticalPowerCut);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /*private class Engine {
 | 
			
		||||
        private int power;
 | 
			
		||||
    }*/
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,9 @@
 | 
			
		||||
package encapsulationInheritancePolymorphism.polymorphism.enhanced;
 | 
			
		||||
 | 
			
		||||
public class Engine {
 | 
			
		||||
    private int power = 100;
 | 
			
		||||
 | 
			
		||||
    public int getPower() {
 | 
			
		||||
        return power;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,10 @@
 | 
			
		||||
package encapsulationInheritancePolymorphism.polymorphism.enhanced;
 | 
			
		||||
 | 
			
		||||
public class FuelEngine extends Engine {
 | 
			
		||||
    private String fuelType;
 | 
			
		||||
 | 
			
		||||
    /*public int getPower() {
 | 
			
		||||
        return 50;
 | 
			
		||||
    }*/
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,28 @@
 | 
			
		||||
package encapsulationInheritancePolymorphism.polymorphism.enhanced;
 | 
			
		||||
 | 
			
		||||
/*import encapsulationInheritancePolymorphism.inheritance.ElectricEngine;
 | 
			
		||||
import encapsulationInheritancePolymorphism.inheritance.FuelEngine;*/
 | 
			
		||||
 | 
			
		||||
public class Main {
 | 
			
		||||
    public static void main(String[] args) {
 | 
			
		||||
        /*encapsulationInheritancePolymorphism.inheritance.*/
 | 
			
		||||
        ElectricEngine electricEngine = new ElectricEngine(); // створення нового об'єкту (екземпляру) класу ElectricEngine
 | 
			
		||||
        /*encapsulationInheritancePolymorphism.inheritance.*/
 | 
			
		||||
        FuelEngine fuelEngine = new FuelEngine();
 | 
			
		||||
 | 
			
		||||
        Engine engine1 = fuelEngine;
 | 
			
		||||
 | 
			
		||||
        Engine[] engines = {
 | 
			
		||||
                electricEngine,
 | 
			
		||||
                fuelEngine
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        for (Engine engine : engines) {
 | 
			
		||||
            System.out.println(engine.getPower());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /*for (int i = 0; i < engines.length; i++) {
 | 
			
		||||
            System.out.println(engines[i].getPower());
 | 
			
		||||
        }*/
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user