Java Object - 멀티태스킹

3745 단어
다태성
  • 다태성의 구현:
  •  -         
     -       
    
  • 대상의 다태성:
  • 상향 전환: 프로그램은 자동으로 부류 부류 대상을 완성합니다 = 부류 실례
  • 아래로 전환: 강제 유형 전환 하위 클래스 하위 클래스 대상 = (하위 클래스) 상위 클래스 실례
  •      :     
    
    class A2{
        public void tell1() {
            System.out.println("A2---tell1");
        }
        public void tell2() {
            System.out.println("A2---tell2");
    
        }
    }
    class B2 extends A2{
        public void tell1() {
            System.out.println("B2---tell1");
        }
        public void tell3() {
            System.out.println("B2--tell3");
        }
    }
    public class Demo22 {
        public static void main(String[] args) {
            //    
            B2 b = new B2();
            A2 a=b;
            a.tell1();//tell1    ,           
            a.tell2();
        }
    }
    
      :
    B2---tell1
    A2---tell2
    
        :     
    
    class A2{
        public void tell1() {
            System.out.println("A2---tell1");
        }
        public void tell2() {
            System.out.println("A2---tell2");
    
        }
    }
    class B2 extends A2{
        public void tell1() {
            System.out.println("B2---tell1");
        }
        public void tell3() {
            System.out.println("B2--tell3");
        }
    }
    public class Demo22 {
        public static void main(String[] args) {
            //    
            A2 a2 = new B2();
            B2 b2 = (B2)a2;
            b2.tell1();
            b2.tell2();
            b2.tell3();
        }
    }
    
      :
    B2---tell1
    A2---tell2
    B2--tell3
    
         :       
    
    class A2{
        public void tell1() {
            System.out.println("A2---tell1");
        }
        public void tell2() {
            System.out.println("A2---tell2");
    
        }
    }
    class B2 extends A2{
        public void tell1() {
            System.out.println("B2---tell1");
        }
        public void tell3() {
            System.out.println("B2--tell3");
        }
    }
    public class Demo22 {
        public static void main(String[] args) {
            //    
            A2 a2 = new A2(); // B2  A2,   -       
            B2 b2 = (B2)a2;
            b2.tell1();
            b2.tell2();
            b2.tell3();
        }
    }
    
      :
    Exception in thread "main" java.lang.ClassCastException: cn.sec.ch02.A2 cannot be cast to cn.sec.ch02.B2
        at cn.sec.ch02.Demo22.main(Demo22.java:35)
    
    

    2. 다태적 응용
      
    
    class A3{
        public void tell1(){
            System.out.println("A3---tell1");
        }
    }
    class B3 extends A3{
        public void tell2(){
            System.out.println("B3--tell2");
        }
    }
    class C3 extends A3{
        public void tell3() {
            System.out.println("C3--tell3");
        }
    }
    class D3 extends A3{
        
    }
    public class Demo23 {
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            say(new B3());
            say(new C3());
            say(new D3());
        }
        /**
         *       B3  C3     tell1   
         */
        public static void say(A3 a) {
            a.tell1();
        }
    
    }
      :
    A3---tell1
    A3---tell1
    A3---tell1
    

    3. instanceof 키워드
    자바에서 instanceof 키워드를 사용하여 대상이 클래스의 실례인지 아닌지를 판단할 수 있다.
      
    class A4{
        public void tell1() {
            System.out.println("A4---tell1");
        }
        public void tell2() {
            System.out.println("A4---tell2");
    
        }
    }
    class B4 extends A4{
        public void tell1() {
            System.out.println("B4---tell1");
        }
        public void tell3() {
            System.out.println("B4--tell3");
        }
    }
    public class Demo24 {
        public static void main(String[] args) {
            A4 a4  = new A4();
            System.out.println(a4 instanceof A4);
            System.out.println(a4 instanceof B4);
            
            A4 a = new B4(); //    
            System.out.println(a instanceof A4);
            System.out.println(a instanceof B4);
        }
    }
    
      :
    true
    false
    true
    true
    

    좋은 웹페이지 즐겨찾기