Javase ---03 추상 클래스 및 인터페이스

17064 단어 JavaSE

Javase ---03 추상 클래스 및 인터페이스

  • 1 추상 클래스
  • 1.1 추상 클래스가 무엇인지
  • 1.2 추상적인 방법이 무엇인지
  • 1.3 추상류와 추상 방법의 특징
  • 2 커넥터
  • 2.1 인터페이스와 클래스의 차이
  • 2.2 인터페이스 특성
  • 3 추상류와 인터페이스의 차이
  • 1 추상 클래스


    1.1 추상류란 무엇인가


    대상을 향한 개념에서 모든 대상은 클래스를 통해 묘사되지만 반대로 모든 클래스가 대상을 묘사하는 데 쓰이는 것은 아니다. 만약에 하나의 클래스에 충분한 정보를 포함하지 않고 구체적인 대상을 묘사하면 이런 클래스가 추상류이다. , 클래스의 다른 기능은 여전히 존재하고 구성원 변수, 구성원 방법과 구조 방법의 접근 방식은 일반 클래스와 같다.
    추상 클래스를 만들 때 abstract 키워드를 사용합니다
    public abstract class Employee{
    	
    }
    

    1.2 추상적인 방법이 무엇인가


    클래스에서 하나의 방법을 성명하는데 이 방법은 실현체가 없고'공'방법이다. 이런 방법을 추상적인 방법이라고 한다. 수식자'abstract'를 사용한다. 하나의 클래스에 추상적인 방법이 있을 때 이 클래스는 반드시 추상적인 클래스로 성명되어야 한다.
    public abstract class Employee{
    	 public abstract double computePay();
    }
    

    1.3 추상류와 추상적 방법의 특징

  • 추상류는 실례화(초보자가 범하기 쉬운 잘못)될 수 없고, 실례화되면 오류가 보고되고 번역은 통과할 수 없다.추상 클래스의 비추상 하위 클래스만 대상을 만들 수 있습니다
  • 추상류에 추상적인 방법이 반드시 포함된 것은 아니지만 추상적인 방법이 있는 류는 반드시 추상류
  • 추상류 중의 추상적인 방법은 성명일 뿐 방법체를 포함하지 않고 방법의 구체적인 실현, 즉 방법의 구체적인 기능을 제시하지 않는다
  • 속성, 구조 방법,final 방법, 유형 방법(static로 수식하는 방법), 사유 방법은 추상적인 방법으로 성명할 수 없다
  • final류는 추상류로 성명할 수 없음
  • 추상류의 자류는 반드시 추상류 중의 추상적 방법의 구체적인 실현을 제시해야 한다. 이 자류도 추상류가 아니면
  • 추상 클래스의 속성은 정태와 비정태 속성,final과 비final 속성
  • 이 될 수 있다.
  • 내부 추상류는public,protected,default,private를 사용할 수 있다.외부 추상 내는public,default
  • 만 가능합니다
    public abstract class Father {
        public abstract class a {
    
        }
    
        protected abstract class b {
    
        }
    
        abstract class c {
    
        }
    
        private abstract class d {
    
        }
    }
    
    abstract class Zi {
    
    }
    

    2 커넥터


    인터페이스 (영어: Interface) 는 JAVA 프로그래밍 언어에서 추상적인 형식으로 추상적인 방법의 집합이며, 인터페이스는 보통interface로 설명된다.하나의 유형은 인터페이스를 계승하는 방식을 통해 인터페이스를 계승하는 추상적인 방법이다.
    인터페이스는 클래스가 아니다. 인터페이스를 작성하는 방식은 클래스와 비슷하지만 서로 다른 개념에 속한다.클래스 설명 대상의 속성과 방법.인터페이스는 클래스가 실현해야 할 방법을 포함한다.인터페이스를 실현하는 클래스가 추상적인 클래스가 아니라면, 이 클래스는 인터페이스의 모든 방법을 정의해야 한다.인터페이스는 실례화될 수 없지만 실현될 수 있다.인터페이스를 실현하는 클래스는 인터페이스 안에 기술된 모든 방법을 실현해야 하며, 그렇지 않으면 추상류로 성명해야 한다.또한 자바에서 인터페이스 형식은 변수를 설명하는 데 사용되며, 빈 바늘이 되거나, 이 인터페이스에 연결된 대상이 될 수 있다.
    public interface AD {
        // 
        public abstract void physicAttack();
    }
    

    2.1 인터페이스와 클래스의 차이

  • 인터페이스는 실례화 대상에 사용할 수 없습니다.
  • 인터페이스에 구조 방법이 없습니다.
  • 인터페이스의 모든 방법은 추상적인 방법이어야 한다.
  • 인터페이스에static와final 변수를 제외하고는 구성원 변수를 포함할 수 없습니다.
  • 인터페이스는 클래스에 계승된 것이 아니라 클래스에 의해 실현되어야 한다.
  • 인터페이스는 다중 계승을 지원한다.

  • 2.2 인터페이스 특징

  • JDK1.7 이전 인터페이스에서 속성은 모두publicstatic final이고 방법은 모두public abstract의
  • JDK1.8에 정적 방법, 기본 방법이 추가되었습니다.정적 방법은 인터페이스 이름만 통과할 수 있습니다.정적 방법명() 사용;기본 방법은 인터페이스의 실현 클래스를 통해 실례적으로 호출할 수 있다 .super. .
  • public interface Fu {
        public static final int a = 0;
        public static final int b = 0;
    
        // 
        public abstract void xx();
    
        public abstract void yy();
    
        //   ,public 
        //   . ()  
        public static void m() {
    
            System.out.println(" ");
        }
    
        //   ,public 
        public default void d(){
            System.out.println(" ");
        }
    }
    
  • 정적 방법은 다시 쓸 수 없고 기본 방법은 클래스 다시 쓸 수 있다
  • 인터페이스는 다른 인터페이스를 계승하려면 extends를 사용하고 인터페이스는 인터페이스만 계승할 수 있으며 클래스와 실현 인터페이스를 계승할 수 없음
  • [ ] interface   [extends  1,  2,...] {
           //  
            //  
    }
    
  • 류는 다른 류만 계승할 수 있고 인터페이스를 많이 실현할 수 있다.만약 다중 인터페이스에 같은 이름의 기본 방법이 있다면, 클래스를 다시 써야 합니다
  • public class    extends   implements  1,  2{}// 
    
  • 만약에 하위 클래스가 계승된 클래스와 실현된 인터페이스에 동명의 방법이 있다면 하위 클래스는 인터페이스를 다시 쓰는 방법이 없고 하위 클래스는 하위 클래스의 방법을 기본적으로 사용하고 자신의 [클래스 우선 원칙]
  • 을 다시 쓴다
  • 만약에 하위 클래스가 계승하는 클래스와 실현된 인터페이스에 같은 이름의 속성이 있다면 하위 클래스는 이 속성이 없고 하위 클래스가 직접 이 속성을 사용하면 이 속성이 명확하지 않은 오류를 보고할 수 있다
  • interface A{
    	int x = 0;
    }
    class B{
    	int x = 1;
    }
    class C extends B implements A{
    	public void pX(){
    		System.out.println(x);// 
    		// 
    		System.out.println(super.x);
    		System.out.println(A.x);
    	}
    	public static void main(String[] args) {
    		new C().pX();
    	}
    }
    

    ------------------------------------------------------------------------------------------------------------------------------------------- 하나의 예제
    interface Playable{
        void play();
    }
    
    interface Bounceable{
        void play();
    }
    interface Rollable extends Playable,Bounceable{
        Ball ball = new Ball("PingPong");
    }
    class Ball implements Rollable{
        private String name;
        private String getName(){
            return name;
        }
        public Ball(String name){
            this.name=name;
        }
    
        // play 
        @Override
        public void play() {
            ball=new Ball("Football");// ,  public static final 
            System.out.println(ball.getName());
        }
    }
    
    

    3 추상류와 인터페이스의 차이

  • 차이1: 자류는 하나의 추상류만 계승할 수 있고 여러 자류를 계승할 수 없으면 여러 인터페이스를 실현할 수 있다
  • 차이점2:
  • 추상 클래스는public,protected,package,private 정태와 비정태 속성final과 비final 속성
  • 을 정의할 수 있다.
  • 그러나 인터페이스에 명시된 속성은publicstaticfinal만 가능합니다.명확한 성명이 없어도

  • 주: 추상류와 인터페이스는 모두 실체적인 방법이 있을 수 있다.인터페이스의 실체 방법을 기본 방법이라고 한다

    좋은 웹페이지 즐겨찾기