2024.04.23

Java 상속 (Inheritance), 추상클래스와 인터페이스

  • 같은 것 끼리는 extends를 사용 : 클래스가 클래스를 상속, Interface가 Interface를 상속
  • Interface -> 클래스 상속 가능 / 클래스 -> Interface 불가능.
  • Interface를 클래스가 상속 : impliments (시행하다)

추상클래스 - abstract

추상 클래스 생성

package ch08interface;

// 추상 클래스 - 추상 메서드를 가지고 있는 클래스
public abstract class AbstractClass {
	
	String name;
	
	// 이름 : 원필재
	
	// **** 출력 ****
	// ** 원필재 : 원필재 **
	// *************
	
	// 추상 메서드는 상속 받은 자식 클래스에서 코드를 작성한다.
	public abstract void print();
	
	public void setAndPrint(String name) {
		this.name = name;
		print();
	}
}

추상클래스를 상속 받는 클래스 생성 1

package ch08interface;

public class Name1Class extends AbstractClass{

	@Override
	public void print() {
		// TODO Auto-generated method stub
		System.out.println("이름 : " + name);
	}
}

추상 클래스를 상속 받는 클래스 생성 2

package ch08interface;

public class Name2Class extends AbstractClass {
							
	@Override
	public void print() {
		// TODO Auto-generated method stub
		System.out.println("****** 출력 ******");
		System.out.println("** 이름 : " + name + " **");
		System.out.println("*****************");
	}
}

상속 받은 클래스를 메인에 변수에 저장해서 사용

package ch08interface;

public class NameExample {
	
	public static void main(String[] args) {
		
		AbstractClass name1 = new Name1Class(); // name1에서 받아옴
		name1.setAndPrint("원필재");
		
		AbstractClass name2 = new Name2Class(); // name2에서 받아옴
		name2.setAndPrint("원필재");
	
	} // end of main()
} // end of class

인터페이스 - interface

인터페이스 생성

package ch08interface;

// 모든 메서드를 추상으로 만든다.
public interface AddCal {
	
	public int add(int a, int b);

}

더하는 클래스 생성 - 인터페이스 상속

	package ch08interface;
	
	public class AddClass implements AddCal {
	
		@Override
		public int add(int a, int b) {
			// TODO Auto-generated method stub
			return a + b;
		}
	}

더하고 곱하는 클래스 생성 - 인터페이스 상속

package ch08interface;

public class AddAndMultiClass implements AddCal {

	@Override
	public int add(int a, int b) {
		// TODO Auto-generated method stub
		return (a + b) * 100;
	}
}

상속 받은 클래스를 생성해 출력

package ch08interface;

public class InterfaceExample {
	public static void main(String[] args) {
		
		AddCal cal = new AddClass();
		System.out.println(cal.add(10, 5));
		cal = new AddAndMultiClass();
		System.out.println(cal.add(10, 5));
		
	} // end of main()
} // end of class

태그:

카테고리: ,

업데이트: