본문 바로가기

JAVA/기초 문법

추상클래스

 

0.

추상클래스

:추상메서드 기입, 변수 작성-> 자식 클래스에서 값 입력

public abstract class AbstractClass {//하나이상의 추상메서드를 포함 한 것

	private int number;
	
	public void method() {
		System.out.println("AbstractClass method()");
	}
	
	public abstract void abstractMethod();
	//확장성->추가기입
	//대부분 매개변수가 없음
}

 

1.

child클래스 

: 오버라이딩으로 추상클래스 속 동일메서드 생성 후 원하는 값 작성

public class childClass extends AbstractClass{

	@Override
	public void abstractMethod() {
		System.out.println("childClass abstractMethod()");
	}
}

 

2.

My클래스 

: 오버라이딩으로 추상클래스 속 동일메서드 생성 후 원하는 값 작성

public class MyClass extends AbstractClass {

	@Override
	public void abstractMethod() {
		System.out.println("MyClass abstractMethod()");
	}
}

 

 

 

main

public class mainClass {
	public static void main(String[] args) {
		/*
		 	Abstract class : 추상 class	
		 					추상 method : 선언만 되어있는 함수
		 						abstract int method(char c, int i); 
		 						// 중 (char c, int i) ->prototype;(매개변수형식...?)
		 					생성은 불가능하다. 상속받은 class에서 정의를 한 후에 생성이 가능
		 	
		 	class : method의 내용이 모두 설정되어 있는 것.
		 					int method(char c, int i){
		 							처리
		 					}
		 */
		childClass ccls = new childClass();
		ccls.method();//상속 받은 클래스에서 사용 //답 : AbstractClass method()
		ccls.abstractMethod();//답 : childClass abstractMethod()
		System.out.println();
		
		AbstractClass acls = new AbstractClass() {
		
			@Override
			public void abstractMethod() {//정의 후 인스턴스로 사용
				System.out.println("AbstractClass abstractMethod()");
			}
		};
		
		acls.method(); //답 : AbstractClass method()
		acls.abstractMethod();//답 : AbstractClass abstractMethod()
		
		AbstractClass cls = new childClass();
		//부모클래스가 인스턴스를 자식클래스로 잡는것이라서 문제 없음.
		//제일 많이 쓰는 형태.
		AbstractClass cls2 = new MyClass();
		//자식 2명을 묶을 수 있다.(부모 기본메서드에서 호출, 선언 등)
	}
}

 

'JAVA > 기초 문법' 카테고리의 다른 글

접근제한자 정리  (0) 2020.06.11
Interface 인터페이스  (0) 2020.06.09
그냥 알아두면 좋은 개념  (0) 2020.06.05
...num  (0) 2020.05.28
function 배열 할당  (0) 2020.05.27