자바 추상 메소드와 추상 클래스
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 |