본문 바로가기

백엔드/JAVA

ch06. 타입변환과 다형 8/22

public class UpcastingDowncastingDemo {
  public static void main(String[] args) {
    Person p = new Person();
    Student s = null;
    //String s = p; // 부모와 자식 으로써 서로 타입이 다름
    Student s = (Student) p; // 클래스를 casting하다가 person과 Student의 형식이 맞지않음
  }
}

 

 

 

 

 

 

 public static void main(String[] args) {
    Student s = new Student();
    Person p = new Person();
    System.out.println(s instanceof  Student);
    System.out.println(s instanceof  Person);
    System.out.println(s instanceof  Object);
  }

 

 

 

public static void main(String[] args) {
    Student s = new Student();
    Person p = new Person();
    Army a = new Army();

    downcast(s);
    downcast(p);
    //   downcast("abdfdfe");
    downcast(a);
  }

  private static void downcast(Person p) {

    if (p instanceof Army) {
      Army a = (Army) p;
      System.out.println(a.number);
      a.work();
    }
  }

 

 

 

 

반응형

'백엔드 > JAVA' 카테고리의 다른 글

JAVA 변수 와 매개변수의 값이 다른이유  (0) 2024.09.07
절차지향 vs 객체지향(인프런실습)  (0) 2024.08.29
java - map  (0) 2024.08.28
java - lambda  (0) 2024.08.28
JAVAerror로그  (0) 2024.08.26