자식의 출력값이 부모한테 씌워지는거 :0
출처 : https://hyoje420.tistory.com/14
컴파일에 오버라이딩 할거라고 표시하는거.
혹시 부모 클래스에 있는 메소드 중에 이름이 같은게 없다면 컴파일 오류가 뜬다.
여러 사람과 함께 일할 때 알아보기 쉽게 표기해 주는 것이 좋음.
출처 : https://mine-it-record.tistory.com/120
Shape[] shape =
{new Circle(10),new Triangle(10, 10),new Rectangle(10, 10)};
for (Shape s : shape) {
sumArea += s.getArea();
}
class Shape{
public double getArea() {
return 0.0;
}
}
class Circle3 extends Shape{
private int r;
public Circle3(int r) {
this.r=r;
}
@Override
public double getArea() {
return r*r*Math.PI;
}
}
class Triangle extends Shape{
private int width, height;
public Triangle(int width, int height) {
this.width = width;
this.height = height;
}
@Override
public double getArea() {
return width*height / 2.0;
}
}
class Rectangle2 extends Shape{
private int width, height;
public Rectangle2(int width, int height) {
this.width = width;
this.height = height;
}
@Override
public double getArea() {
return width*height;
}
}
public class CircleOverriding {
static double getArea(Circle3 circle) {
return circle.getArea();
}
static double getArea(Triangle triangle) {
return triangle.getArea();
}
static double getArea(Rectangle2 rectangle) {
return rectangle.getArea();
}
// 위에 세개 만들어야될거 이거로 하면 하나로 해결됨 :3c
// 다형성 이용해서 글케 되는거래.
static double getArea(Shape shape) {
return shape.getArea();
}
public static void main(String[] args) {
double sumArea = 0;
Circle3 circle = new Circle3(10);
Triangle triangle = new Triangle(10,10);
Rectangle2 rectangle = new Rectangle2(10, 10);
sumArea =
circle.getArea() + triangle.getArea() + rectangle.getArea();
System.out.println("고객님 넓이는 " + sumArea + "입니다.");
// 위와 동일한 출력값.
// 근데 내용 추가되거나 하면 위보단 아래가 수정하기 더 간편하고
// 보기 좋으니까 아래를 추천.
sumArea = 0;
Shape[] shape =
{new Circle3(10), new Triangle(10,10), new Rectangle2(10, 10)};
for (Shape s : shape) {
sumArea += s.getArea();
}
System.out.println("고객님 넓이는 " + sumArea + "입니다.");
}
}
겜블링 게임에 참여할 선수 숫자>>3
1번째 선수 이름>>영희
2번째 선수 이름>>철수
3번째 선수 이름>>길동
[영희]:<Enter>
3 3 2 아쉽군요!
[철수]:<Enter>
3 3 2 아쉽군요!
[길동]:<Enter>
1 1 1 길동님이 이겼습니다!
import java.util.Scanner;
class Player{
private String name;
private int[] arrNum;
public Player(String name) {
this.name = name;
}
public String getName() {
return name;
}
public boolean game() {
arrNum = new int[3];
for(int i=0; i< arrNum.length;i++) {
arrNum[i] = (int) (Math.random()*3 + 1);
}
System.out.print(arrNum[0]+" "+arrNum[1]+" "+arrNum[2]+" ");
if((arrNum[0] == arrNum[1]) && (arrNum[1]== arrNum[2])) {
return true;
}
return false;
}
}
class Gamble {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("1번째 선수 이름>>");
String name = scanner.next();
Player p1 = new Player(name);
System.out.print("2번째 선수 이름>>");
name = scanner.next();
Player p2 = new Player(name);
System.out.print("3번째 선수 이름>>");
name = scanner.next();
Player p3 = new Player(name);
//버퍼 깨끗이 비우기
String buffer = scanner.nextLine();
while(true) {
System.out.print("[" + p1.getName() + "]:<Enter>");
buffer = scanner.nextLine();
if(p1.game()) {
System.out.println(p1.getName() +"님이 이겼습니다.");
break;
}
System.out.println("아쉽군요!");
System.out.print("[" + p2.getName() + "]:<Enter>");
buffer = scanner.nextLine();
if(p2.game()) {
System.out.println(p2.getName() +"님이 이겼습니다.");
break;
}
System.out.println("아쉽군요!");
System.out.print("[" + p3.getName() + "]:<Enter>");
buffer = scanner.nextLine();
if(p3.game()) {
System.out.println(p3.getName() +"님이 이겼습니다.");
break;
}
System.out.println("아쉽군요!");
}
scanner.close();
}
}
강사님이 주신거에서 사람만 한 명 추가했어요.......
감사합니다 하지만 제가 너무 초보인지라:3c......