반응형
package com.company;
//polymorphism 예시 : Big class + 자잘한 class들 +main 하나에 생성
//예)영화1개 - 영화제목들 3개...
//Big class(base class)
class Movie {
private String name; //field
public Movie(String name){ //constructor - access+className (access+initialization)
this.name =name;
}
public String plot(){ // instance method
return "No plot here";
}
public String getName() { //getter
return name;
}
}
// 자잘한 class 3개
//class 1
class Jaws extends Movie{ //inheritance from Movie(base class)
public Jaws() { //constructor
super("Jaws");
}
@Override // method override
public String plot() {
return "A shark eats lots of people";
}
}
class IndependenceDay extends Movie{ //class 2
public IndependenceDay() { //constructor
super("IndependenceDay");
}
@Override // method override
public String plot() {
return "Aliens attempt to take over planet earth";
}
}
class MazeRunner extends Movie{ //class 3
public MazeRunner() { //constructor
super("MazeRunner");
}
@Override // method override
public String plot() {
return "Maze Runner";
}
}
// 출력 code
public class Main { //movie.plot이 polymophism
public static void main(String[] args) {
for(int i=1; i<11; i++){
Movie movie = randomMovie(); //object movie설정/
System.out.println("Movie#"+ i + ":"+ movie.getName()+"\n"+ //"\n"은 next line
"Plot: "+movie.plot() +"\n");
}
}
public static Movie randomMovie(){ //random Method
int randomNumber = (int)(Math.random()*3)+1; //range: 1~3
System.out.println("Random Number generated was:" + randomNumber );
switch(randomNumber){
case 1: //object 설정: class object=new class
return new Jaws();
case 2:
return new IndependenceDay();
case 3:
return new MazeRunner();
// default:
// return null;
}
return null; //default: 쓸때보다 뭐 polymorphism 더 잘 보여준다하니.
}
}
output
D:\IT\JDK\jdk11.0.6_10\bin\java.exe "-javaagent:D:\IT\IDEA\IntelliJ IDEA Community Edition 2020.1\lib\idea_rt.jar=63041:D:\IT\IDEA\IntelliJ IDEA Community Edition 2020.1\bin" -Dfile.encoding=UTF-8 -classpath D:\IT\NewProject\polymorphism\out\production\polymorphism com.company.Main
Random Number generated was:1
Movie#1:Jaws
Plot: A shark eats lots of people
Random Number generated was:2
Movie#2:IndependenceDay
Plot: Aliens attempt to take over planet earth
Random Number generated was:1
Movie#3:Jaws
Plot: A shark eats lots of people
Random Number generated was:3
Movie#4:MazeRunner
Plot: Maze Runner
Random Number generated was:3
Movie#5:MazeRunner
Plot: Maze Runner
Random Number generated was:2
Movie#6:IndependenceDay
Plot: Aliens attempt to take over planet earth
Random Number generated was:3
Movie#7:MazeRunner
Plot: Maze Runner
Random Number generated was:3
Movie#8:MazeRunner
Plot: Maze Runner
Random Number generated was:3
Movie#9:MazeRunner
Plot: Maze Runner
Random Number generated was:3
Movie#10:MazeRunner
Plot: Maze Runner
Process finished with exit code 0
'JavaCode(review)' 카테고리의 다른 글
ReverseArrayChallenge / (0) | 2020.05.20 |
---|---|
ArrayChallenge / console값 입력 후 최소값 구하기. (0) | 2020.05.20 |
ArrayChallenge/ console 입력 값/ 큰 순서대로 나열(descending) (0) | 2020.05.19 |
Array Average / console입력값들. (0) | 2020.05.18 |
Burger Price/ OOP ex/ (0) | 2020.05.18 |