import java.util.*;
class Cal{
int a,b;
public void setValue(int a,int b) {
this.a=a;
this.b=b;
}
public int calculate() {
return a;
}
}
class Add extends Cal{
public int calculate() { //overriding 덮어쓰기 (재정의)
return a+b;
}
}
class Sub extends Cal{
public int calculate() {
return a-b;
}
}
class Mul extends Cal{
public int calculate(){
return a*b;
}
}
class Div extends Cal{
public int calculate() {
return a/b;
}
}
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a,b;
String c;
System.out.print("두 정수와 연산자를 입력하시오 >> ");
a=sc.nextInt();
b=sc.nextInt();
c=sc.next();
Cal ob;
if(c.equals("+")) {
ob = new Add();
}
else if(c.equals("-")) {
ob = new Sub();
}
else if(c.equals("*")) {
ob = new Mul();
}
else{
ob = new Div();
}
ob.setValue(a, b);
System.out.println(ob.calculate());
}
}
상속 : extends 확장하다
super class 수퍼클래스 부모클래스
sub class 서브클래스 자식클래스
부모클래스의 필드, 메소드는 전부 상속된다 .
*/
/*
class Person{
private int age;
String name;
String school;
public void setAge(int age)
{
this.age=age;
}
public void view() {
System.out.println(age +" "+name+" "+school);
}
}
class Student extends Person{
char grade;
}
class EStudent extends Student{
}
class Teacher extends Person{
String subject;
}
*/
/*
class Point{
private int x,y;
// public Point() {
// x=100;y=100;
// System.out.println("point의 생성자");
// }
public Point(int x,int y) {
this.x=x;
this.y=y;
}
public void showPoint() {
System.out.println("("+x+","+y+")");
}
}
class ColorPoint extends Point{
private String color;
public ColorPoint() {
super(50,50);
System.out.println("colorpoint의 생성자");
}
public void setColor(String color) {
this.color = color;
}
public void showColorPoint() {
System.out.print(color);
showPoint();
}
}
public class Main {
public static void main(String[] args) {
// Point p = new Point();
// p.showPoint();
//
// Point p1 = new Point(10,10);
// p1.showPoint();
ColorPoint cp= new ColorPoint();
cp.showPoint();
}
}
*/
/*
class Point{
private int x,y;
public Point() {
this.x=this.y=0;
}
public Point (int x,int y) {
this.x=x;
this.y=y;
}
public void showPoint() {
System.out.println("("+x+","+y+")");
}
}
class ColorPoint extends Point{
private String color;
public ColorPoint(int x,int y, String color) {
super(x,y);
this.color=color;
}
public void showColorPoint() {
System.out.print(color);
showPoint();
}
}
public class Main{
public static void main(String[] args) {
ColorPoint cp = new ColorPoint(5,6,"blue");
cp.showColorPoint();
}
}
*/
/*
class A{
public A() {
System.out.println("생성자A");
}
public A(int x) {
System.out.println("매개변수생성자A"+x);
}
}
class B extends A{
public B() {
super(30);
System.out.println("생성자B");
}
public B(int x) {
System.out.println("매개변수생성자B" +x);
}
}
public class Main{
public static void main(String[] args) {
B b;
b=new B();
}
}
*/
/*
1. super()
2. 매개변수생성자A30
생성자B
3. super 가 첫째줄에 있지 않다.
*/