You are on page 1of 17

JOBSHEET

MODUL 7 (POLYMORPHISM)

No Kegiatan Contoh Latihan


1 Pengenalan  //Parent.java
Virtual method  public class Parent {
Invocation     int x = 5;
    
    public void info(){
        System.out.println("Parent class");
    }
    
}

//Child.java
public class Child extends Parent{
    int x = 10;
    
    @Override
    public void info(){
        System.out.println("Child Class");
    }
    
}

//Main.java
public class Main {
    public static void main(String[] args) {
   Parent Objek = new Child();
        System.out.println("x = "+ Objek.x);
        Objek.info();
   
}
    
}
2 Pengenalan  //Employee.java
Heterogeneous  public class Employee {
Collection     //...
}

//Courier.java
public class Courier extends Employee {
    //...
    
}

//Main.java
public class Main {
    public static void Proses(Employee emp){
        if(emp instanceof Manager){
            //lakukan tugas­tugas manager
        }else if(emp instanceof Courier){
            //lakukan tugas­tugas Courier
        }else{
            //other methode
        }
        
    }
    public static void main(String[] args) {
        Employee[] staff = new Employee[2];
        staff[0] = new Manager();
        staff[1] = new Courier();
        
    }
    
}
3 Pengenalan  //Employee.java
Polymorphic  public class Employee {
Argument     //...
}
//Courier.java
public class Courier extends Employee {
    //...
    
}

//Main.java
public class Main {
    public static void Proses(Employee emp){
        if(emp instanceof Manager){
            Manager man = (Manager) emp; //casting
            //lakukan tugas­tugas manager
        }else if(emp instanceof Courier){
            Courier cou = (Courier) emp; //casting
            //lakukan tugas­tugas Courier
        }else{
            //other methode
        }
        
    }
    public static void main(String[] args) {
        Manager man = new Manager();
        Courier cou = new Courier();
        Proses(man);
        Proses(cou);
    }
    
}
4 Pengenalan Operator //Employee.java
instanceof public class Employee {
    //...
}

//Courier.java
public class Courier extends Employee {
    //...
    
}

//Main.java
public class Main {
    public static void Proses(Employee emp){
        if(emp instanceof Manager){
            //lakukan tugas­tugas manager
        }else if(emp instanceof Courier){
            //lakukan tugas­tugas Courier
        }else{
            //other methode
        }
        
    }
    public static void main(String[] args) {
        Manager man = new Manager();
        Courier cou = new Courier();
        Proses(man);
        Proses(cou);
    }
    
}
5 Pengenalan Object  //Employee.java
Casting public class Employee {
    //...
}

//Courier.java
public class Courier extends Employee {
    //...
    
}
//Main.java
public class Main {
    public static void Proses(Employee emp){
        if(emp instanceof Manager){
            Manager man = (Manager) emp; //casting
            //lakukan tugas­tugas manager
        }else if(emp instanceof Courier){
            Courier cou = (Courier) emp; //casting
            //lakukan tugas­tugas Courier
        }else{
            //other methode
        }
        
    }
    public static void main(String[] args) {
        Manager man = new Manager();
        Courier cou = new Courier();
        Proses(man);
        Proses(cou);
    }
    
}
6 Pengenalan Object  //Parent.java
Casting : Up  public class Parent{
Casting     protected int number = 10;
    
    @Override
    public String toString(){
        return "Parent "+number;
    }
}

//ChildA.java
public class ChildA extends Parent {
    protected int number = 20;
    
    @Override
    public String toString(){
        return "Child A "+number;
    }
    
    public String methodeA(){
        return "Methode Child A";
    }
    
}

//ChildB.java
public class ChildB extends Parent {
    protected int number = 30;
    
    @Override
    public String toString(){
        return "Child B "+number;
    }
    
    public String methodeB(){
        return "Methode Child B";
    }
    
}

//GrandChildA.java
public class GrandChildA extends ChildA {
    protected int number = 40;
    
    @Override
    public String toString(){
        return "Child A "+number;
    }
    
    public String methodeGrand(){
        return "Methode Child A";
    }
    
}

//Driver.java
public class Driver{
public static void main(String args[]){
Parent p = new Parent();
ChildA cA = new ChildA();
ChildB cB = new ChildB();
GrandChildA gC = new GrandChildA();
System.out.println(p.toString());
System.out.println(cA.toString());
System.out.println(cB.toString());
System.out.println(gC.toString());
}
}
7 Pengenalan Object  //Parent.java
Casting : Down  public class Parent{
Casting     protected int number = 10;
    
    @Override
    public String toString(){
        return "Parent "+number;
    }
}

//ChildA.java
public class ChildA extends Parent {
    protected int number = 20;
    
    @Override
    public String toString(){
        return "Child A "+number;
    }
    
    public String methodeA(){
        return "Methode Child A";
    }
    
}

//ChildB.java
public class ChildB extends Parent {
    protected int number = 30;
    
    @Override
    public String toString(){
        return "Child B "+number;
    }
    
    public String methodeB(){
        return "Methode Child B";
    }
    
}

//GrandChildA.java
public class GrandChildA extends ChildA {
    protected int number = 40;
    
    @Override
    public String toString(){
        return "Child A "+number;
    }
    
    public String methodeGrand(){
        return "Methode Child A";
    }
    
}

//Driver.java
public class Driver{
public static void main(String args[]){
Parent castP;
ChildA castA;
GrandChildA gC;
castP = new ChildB();
System.out.println(castP.toString());
castA = (ChildA)castP;
System.out.println(castA.toString());
System.out.println(castA.methodA()); 
/*runtime error:
Class Cast Exception
Downcast only to
it’s original object*/

}
}
8 menggunakan  //StatisOverloading.java
Overloading/statis  public class StatisOverloading {
polimorfism     public static int average(int n1, int n2){
        return (n1+n2)/2;
    }
    
    public static double average(double n1, double n2){
        return (n1+n2)/2;
    }
    
    public static int average(int n1, int n2, int n3){
        return (n1+n2+n3)/3;
    }
}

//StatisPoly.java
public class StatisPoly{
    public static void main(String[] args) {
        System.out.println(average(5, 6));
        System.out.println(average(5.0, 6.0));
        System.out.println(average (5, 6, 7));
    }
}
    
9 Menggunakan  //Human.java
Overriding/dinamis  public class Human {
polimorfism     
   public void run(){
 
      System.out.println("Human is running");
 
   }
 
}

//Student.java
public class Student extends Human{
 
   @Override
   public void run(){
 
      System.out.println("Student is running");
 
   }
 
}

//DinamisPoly.java
public class DinamisPoly{
 
   public static void main(String[] args){
 
      Human h1 = new Human();
 
      h1.run();    // prints 'Human is running'
 
      h1 = new Student();   // polymorphism
 
      h1.run();  // prints 'Student is running'
 
   }
 
}

10 Menggunakan methode //User.java
Setter and Getter  public class User {
(Encapsulation)     private String username;
    private String password;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
       
}

//Main.java
public class Main {
    public static void main(String[] args) {
        User dori = new User();
        
        //methode setter
        dori.setUsername("Dori");
        dori.setPassword("pass123");
        
        //methode getter
        System.out.println("Username : "+dori.getUsername());
        System.out.println("Password : "+dori.getPassword());
        
    } 
        
}

11 Menggunakan kata  //Person.java
this dan super public class Person {
    String name = "Dori";
    int age = 21;
    
}

//Lecture.java
public class Lecture extends Person {
    float salary = 4000f;
    String name = "Rismon";
    int age = 47;
    
    public void showInfo(){
        System.out.println("Name :" + super.name);
        System.out.println("Age :" + super.age);
        System.out.println("Salary : $"+salary);
    }
    
}

//Main.java
public class Main {
    public static void main(String[] args) {
        Lecture rismon = new Lecture();
        rismon.showInfo();
    }
    
}

setelah itu coba ganti super menjadi this
12 Memanggil parent 
class constructor import java.util.Date;
methode overloading
//Employee.java
public class Employee {
    private static final double BASE_SALARY = 15000.00;
    private String name;
    private double salary;
    private Date birthDate;

    public Employee (String name, double salary, Date DoB){
        this.name = name;
        this.salary = salary;
        this.birthDate = DoB;
        
    }
    
    public Employee (String name, double salary){
        this (name, salary, null);
    }
    
    public Employee(String name, Date DoB){
        this(name, BASE_SALARY, DoB);
    }
    
    public Employee(String name){
        this(name, BASE_SALARY);
    }
}

//Manager.java
public class Manager extends Employee {
    private String departement;
    
    public Manager(String name, double salary, String dept){
        super(name, salary);
        departement = dept;
    }
    
    public Manager(String name, String dept){
        super(name);
        departement = dept;
    }
}

//Main.java
public class Main {
    public static void main(String[] args) {
        Employee man = new Manager("Dori", 16000.00, 
"Electrcal");
        //other code
      
       
        
    }
    
}

You might also like