자바 추상 류,계승 및 다 중 및 어댑터 의 실현 코드
방법 재 작성 은 자바 언어 다 중 특성 으로 다음 과 같은 조건 을 만족 시 켜 야 합 니 다.
4.567917.자 류 에서 방법 명칭 은 부 류 방법 명칭 과 완전히 같다.
슈퍼 키워드
슈퍼 키 워드 는 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();
    }
}이상 은 자바 추상 류,계승 및 다 형 및 어댑터 의 실현 에 대한 상세 한 내용 입 니 다.자바 추상 류 계승 다 형 에 관 한 자 료 는 우리 의 다른 관련 글 에 관심 을 가 져 주 십시오!
                이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.