프로그래밍

자바 추상 메소드와 추상 클래스

JAVA
반응형

추상 클래스 : 몸체가 구현되지 않은 메서드를 가진 클래스 -> 추상적인 개념 표현

 

코드

package eample;
abstract class cal
{
	public abstract int add (int a, int b);
	public abstract int subtract (int a, int b);
	public abstract double average (int[] a);
}
public class goodcal extends cal
{
	public int add (int a, int b)
	{
		return a+b;
	}
	public int subtract (int a, int b)
	{
		return a-b;
	}
	public double average (int a[])
	{
		double sum = 0;
		for (int i = 0; i<a.length; i++)
			sum += a[i];
		return sum/a.length;		
	}//10~24 : 추상 메서드 구현
	public static void main(String[] args) {
		goodcal c = new goodcal();
		System.out.println("2+3 ="+c.add(2,3));
		System.out.println("2-3 ="+c.subtract(2, 3));
		System.out.println("(2+3+4)/3 ="+c.average(new int [] {2,3,4}));
	}
}

실행 결과

2+3 =5
2-3 =-1
(2+3+4)/3 =3.0

 

환율 계산

코드

package eample;
import java.util.Scanner;
abstract class converter
{
	abstract protected double convert (double src);
	abstract protected String srcString();
	abstract protected String destString();
	protected double ratio; //비율
	
	public void run()
	{
		Scanner a = new Scanner (System.in);
		System.out.println(srcString()+"을 "+destString()+"로 바꿉니다.");
		System.out.print(srcString()+"을 입력하세요>>>");
		double val = a.nextDouble();
		double res = convert(val);
		System.out.println("반환 결과: "+res + destString()+"입니다.");
		a.close();
	}
}
class w2d extends converter
{
	public w2d(double ratio)
	{
		this.ratio = ratio;
	}
	@Override
	protected double convert(double src) 
	{
		return src/ratio;
	}
	@Override
	protected String srcString() 
	{
		return "원";
	}
	@Override
	protected String destString()
	{
		return "달러";
	}
	public static void main(String[] args) {
		w2d tod = new w2d(1200);
		tod.run();
	}	
}

실행 결과

원을 달러로 바꿉니다.
원을 입력하세요>>>123546
반환 결과: 102.955달러입니다.
반응형

'JAVA' 카테고리의 다른 글

자바 기본 api  (0) 2020.01.05
자바 예외처리  (0) 2020.01.05
자바 상속  (0) 2020.01.04
자바 내부 클래스 - 익명 클래스  (0) 2020.01.04
자바로 회문 정수 판별하기  (0) 2019.12.22