자바 추상 류,계승 및 다 중 및 어댑터 의 실현 코드

자바 계승
방법 재 작성 은 자바 언어 다 중 특성 으로 다음 과 같은 조건 을 만족 시 켜 야 합 니 다.
4.567917.자 류 에서 방법 명칭 은 부 류 방법 명칭 과 완전히 같다.
  • 방법의 매개 변수 개수 와 유형 이 똑 같 고 반환 유형 이 똑 같 습 니 다
  • 4.567917.방법의 방문 수정자 방문 단 계 는 부모 류 동명 방법의 방문 단계 보다 낮 지 않다4.567917.방법 에@override 주석 을 추가 합 니 다.잘못 보고 하면 재 작성 이 아 닙 니 다방법 재 작성 제한
  • final 수식 의 부류 방법 은 부류 에서 다시 쓸 수 없다
  • 4.567917.static 수식 의 부모 방법 은 하위 클래스 에서 다시 쓸 수 없고 덮어 쓸 수 있 습 니 다.4.567918.
    슈퍼 키워드
    슈퍼 키 워드 는 this 와 유사 합 니 다.슈퍼 는 슈퍼()와 같은 부모 클래스 의 대상 을 수식 합 니 다.부모 클래스 의 기본 무 참 구조 기 를 호출 합 니 다.
    자바 추상 클래스
    추상 적 특징
    4.567917.추상 류 는 보통 추상 적 인 방법 을 포함 하고 비 추상 적 인 방법 도 포함한다추상 류 는 final 키 워드 를 사용 할 수 없습니다추상 류 자 체 는 예화 할 수 없다추상 류 는 바로 계승 되 는 것 이다추상 류 의 계승
    4.567917.자 류 는 반드시 아버지 류 의 모든 추상 적 인 방법 을 실현 해 야 한다.
    4.567917.만약 에 자 류 가 override 가 아버지 류 의 추상 적 인 방법 을 실현 했다 면 간접 자 류 는 이 방법 을 실현 하지 않 아 도 된다어댑터
    어댑터,클래스 이름+Adapator 를 정의 합 니 다.예 를 들 어 MamalAdapator.아버지 에 게 물 려 주 는 모든 방법 이 텅 비 었 다.뒤의 인 스 턴 스 클래스 는 이 어댑터 를 계승 하면 일부 부모 클래스 를 실현 하 는 방법 을 선택 적 으로 다시 쓸 수 있 습 니 다4.567917.추상 류 는 하나의 추상 적 인 방법 만 제공 한 다음 에 하위 류 가 override 를 계승 하고 재 작성 하도록 제공 한 다음 에 특히 override 의 이 기능 을 할 수 있다.예 를 들 어 Dog.eat,Cat.eat,서로 다른 유형 은 서로 다른 방법 으로 실현 할 수 있 지만 방법 명칭 은 모두 같 아서 개발 에 큰 유연성 을 제공 했다.뒤의 프로그래머 가 개발 을 맡 았 을 때예 를 들 어 Tiger.eat 를 추가 해 야 합 니 다.Tiger 류 가 부 류 를 계승 하고 override 하 는 eat 방법 을 하나 더 쓰 면 됩 니 다
    
    /**
     * 1   Eclipse         Java       ,         Counter  ,
     *         Counter                     ,       
     *         ?        Counter                   .
     */
    
    public class Test {
        public static void main(String[] args) {
            //       new    
            Counter cou = new Add();
            //            addition     
            System.out.println("3+9   "+cou.addition(3,9));
        }
    }
    
    /**
     * 1   Eclipse         Java       ,
     *         Counter  ,        Counter
     *                      ,     
     *           ?        Counter    
     *                .
     */
    
    //         Counter
    public abstract class Counter {
        //        addition
        public abstract int addition(int num1, int num2);
    
        public Counter(){
            System.out.println("  Counter     ");
        }
    }
    
    /**
     * 1   Eclipse         Java       ,
     *         Counter  ,        Counter  
     *                    ,         
     *       ?        Counter          
     *          .
     */
    
    public class Add extends Counter{
    
        int num1 = 0;
        int num2 = 0;
    
        //             
        @Override
        public int addition(int num1, int num2) {
            this.num1 = num1;
            this.num2 = num2;
            return num1+num2;
    
        }
    
        public Add(){
            System.out.println("  Add     ");
        }
    }
    분할선
    
    /**
     *2                       ,                 “  ”,
     *                ( ,    ,      ),           ,    
     *    ,              ,           ,              
     *        .
     *       ,        ,                ,            
     *           2                   ,              
     *            2           ,                   , 
     *        ,                               .
     *
     * 3    2  ,                ,                     ,
     *                ,                 ,           
     *               ,         ,     2        .
     */
    
    package tool.test;
    
    import tool.abstracts.Construct;
    import tool.abstracts.Tool;
    import tool.abstracts.Traffic;
    import tool.imp.Car;
    import tool.imp.Hammer;
    
    public class Test {
        public static void main(String[] args) {
            //          ,        
            Tool tool1 = new Traffic() {
                @Override
                public void constructTool() {
    
                }
            };
            tool1.trafficTool();
    
            Tool tool2 = new Construct() {
                @Override
                public void trafficTool() {
    
                }
            };
            tool2.constructTool();
    
            //          ,        
            Traffic traffic = new Car();
            traffic.trafficTool();
    
            Construct construct = new Hammer();
            construct.constructTool();
    
    
        }
    }
    
    /**
     *2                       ,                 “  ”,
     *                ( ,    ,      ),           ,    
     *    ,              ,           ,              
     *        .
     *       ,        ,                ,            
     *           2                   ,              
     *            2           ,                   , 
     *        ,                               .
     *
     * 3    2  ,                ,                     ,
     *                ,                 ,           
     *               ,         ,     2        .
     */
    
    package tool.abstracts;
    
    //    tool   
    public abstract class Tool {
        //            
        public abstract void trafficTool();
        //            
        public abstract void constructTool();
    }
    
    /**
     *2                       ,                 “  ”,
     *                ( ,    ,      ),           ,    
     *    ,              ,           ,              
     *        .
     *       ,        ,                ,            
     *           2                   ,              
     *            2           ,                   , 
     *        ,                               .
     *
     * 3    2  ,                ,                     ,
     *                ,                 ,           
     *               ,         ,     2        .
     */
    
    package tool.abstracts;
    
    //                 
    public abstract class Traffic extends Tool {
    
        public void trafficTool(){
            System.out.println("           ");
        };
    }
    
    /**
     *2                       ,                 “  ”,
     *                ( ,    ,      ),           ,    
     *    ,              ,           ,              
     *        .
     *       ,        ,                ,            
     *           2                   ,              
     *            2           ,                   , 
     *        ,                               .
     *
     * 3    2  ,                ,                     ,
     *                ,                 ,           
     *               ,         ,     2        .
     */
    
    package tool.abstracts;
    
    //                 
    public abstract class Construct extends Tool {
    
        public void constructTool(){
            System.out.println("           ");
        };
    }
    
    /**
     *2                       ,                 “  ”,
     *                ( ,    ,      ),           ,    
     *    ,              ,           ,              
     *        .
     *       ,        ,                ,            
     *           2                   ,              
     *            2           ,                   , 
     *        ,                               .
     *
     * 3    2  ,                ,                     ,
     *                ,                 ,           
     *               ,         ,     2        .
     */
    
    package tool.adaptor;
    
    import tool.abstracts.Construct;
    
    //    Construct    
    public class ConstructAdaptor extends Construct {
    
        //                 
        @Override
        public void trafficTool() {
    
        }
        //                 
        @Override
        public void constructTool() {
    
        }
    }
    
    /**
     *2                       ,                 “  ”,
     *                ( ,    ,      ),           ,    
     *    ,              ,           ,              
     *        .
     *       ,        ,                ,            
     *           2                   ,              
     *            2           ,                   , 
     *        ,                               .
     *
     * 3    2  ,                ,                     ,
     *                ,                 ,           
     *               ,         ,     2        .
     */
    
    package tool.adaptor;
    
    import tool.abstracts.Traffic;
    
    //    Traffic    
    public class TrafficAdaptor extends Traffic {
    
        //                 
        @Override
        public void trafficTool() {
            System.out.println("           ");
        }
        //                 
        @Override
        public void constructTool() {
    
        }
    }
    
    /**
     *2                       ,                 “  ”,
     *                ( ,    ,      ),           ,    
     *    ,              ,           ,              
     *        .
     *       ,        ,                ,            
     *           2                   ,              
     *            2           ,                   , 
     *        ,                               .
     *
     * 3    2  ,                ,                     ,
     *                ,                 ,           
     *               ,         ,     2        .
     */
    
    package tool.imp;
    
    import tool.adaptor.TrafficAdaptor;
    
    //                  
    public class Car extends TrafficAdaptor {
        @Override
        public void trafficTool() {
            System.out.println("        ");
        }
    }
    
    /**
     *2                       ,                 “  ”,
     *                ( ,    ,      ),           ,    
     *    ,              ,           ,              
     *        .
     *       ,        ,                ,            
     *           2                   ,              
     *            2           ,                   , 
     *        ,                               .
     *
     * 3    2  ,                ,                     ,
     *                ,                 ,           
     *               ,         ,     2        .
     */
    
    package tool.imp;
    
    import tool.adaptor.ConstructAdaptor;
    
    //                  
    public class Hammer extends ConstructAdaptor {
        @Override
        public void constructTool(){
            System.out.println("        ");
        }
    }
    분할 선
    
    /**
     * 4     ,                           .
     *      ,         ,             ,    
     * java        ,                      
     *            ,            ,         
     *                 ,   java          
     *        .
     */
    
    package test;
    
    import abstracts.Tool;
    import imp.*;
    
    //      Test
    public class Test {
        public static void main(String[] args) {
            //   Person 
            Person per = new Person();
            //       ,             
            Tool car = new Car();
            Tool plane = new Plane();
            Tool print = new Printer();
            Tool laptop = new Laptop();
    
            //                
            per.useTool(car);
            per.useTool(plane);
            per.useTool(print);
            per.useTool(laptop);
        }
    }
    
    /**
     * 4     ,                           .
     *      ,         ,             ,    
     * java        ,                      
     *            ,            ,         
     *                 ,   java          
     *        .
     */
    
    package abstracts;
    
    //              
    public abstract class Tool {
        //           
        public abstract void travel();
    
        //           
        public abstract void print();
    
        //           
        public abstract void study();
    }
    
    /**
     * 4     ,                           .
     *      ,         ,             ,    
     * java        ,                      
     *            ,            ,         
     *                 ,   java          
     *        .
     */
    package adaptor;
    
    import abstracts.Tool;
    
    //       ,        3       
    public class ToolAdaptor extends Tool {
        @Override
        public void travel() {
    
        }
    
        @Override
        public void print() {
    
        }
    
        @Override
        public void study() {
    
        }
    }
    
    /**
     * 4     ,                           .
     *      ,         ,             ,    
     * java        ,                      
     *            ,            ,         
     *                 ,   java          
     *        .
     */
    package imp;
    
    import adaptor.ToolAdaptor;
    
    //               ,                
    public class Car extends ToolAdaptor {
        @Override
        public void travel() {
            System.out.println("      ");
        }
    }
    
    /**
     * 4     ,                           .
     *      ,         ,             ,    
     * java        ,                      
     *            ,            ,         
     *                 ,   java          
     *        .
     */
    package imp;
    
    import adaptor.ToolAdaptor;
    
    //               ,                
    public class Plane extends ToolAdaptor {
        @Override
        public void travel(){
            System.out.println("      ");
        }
    }
    
    /**
     * 4     ,                           .
     *      ,         ,             ,    
     * java        ,                      
     *            ,            ,         
     *                 ,   java          
     *        .
     */
    package imp;
    
    import adaptor.ToolAdaptor;
    
    //                  ,                
    public class Laptop extends ToolAdaptor {
        @Override
        public void study(){
            System.out.println("         Java");
        }
    }
    
    /**
     * 4     ,                           .
     *      ,         ,             ,    
     * java        ,                      
     *            ,            ,         
     *                 ,   java          
     *        .
     */
    package imp;
    
    import adaptor.ToolAdaptor;
    
    //                ,                
    public class Printer extends ToolAdaptor {
        @Override
        public void print() {
            System.out.println("         ");
        }
    
    
    }
    
    /**
     * 4     ,                           .
     *      ,         ,             ,    
     * java        ,                      
     *            ,            ,         
     *                 ,   java          
     *        .
     */
    
    package imp;
    
    import abstracts.Tool;
    
    //    Person 
    public class Person {
        //           ,  tool      ,   tool          
        public void useTool(Tool tool){
            tool.travel();
            tool.print();
            tool.study();
        }
    }
    이상 은 자바 추상 류,계승 및 다 형 및 어댑터 의 실현 에 대한 상세 한 내용 입 니 다.자바 추상 류 계승 다 형 에 관 한 자 료 는 우리 의 다른 관련 글 에 관심 을 가 져 주 십시오!

    좋은 웹페이지 즐겨찾기