👽 '무기 a무기 = new 칼();' 의 실행 과정
public class Main{
public static void main(String[] args) {
무기 a무기 = new 칼();
a무기.공격();
a무기.방어();
}
}
class 무기 {
public void 공격() {
}
}
class 칼 extends 무기 {
void 방어(){
}
}
👽 매개변수 사용해서 매번 다르게 공격하는 프로그램
class Main{
public static void main(String[] args) {
전사 전사 = new 전사();
전사.공격("브라이언", "칼");
전사.공격("필립","활");
전사.공격("마크","창");
}
}
class 전사{
void 공격(String 이름, String 무기){
System.out.println(이름 + "(이)가 " + 무기 + "(으)로 공격합니다.");
}
}
👽 매개변수를 사용하여 마지막 공격을 기억하고 다시 공격하는 프로그램
class Main {
public static void main(String[] args) {
전사 a전사 = new 전사();
a전사.공격("브라이언", "칼");
a전사.재공격();
a전사.공격("필립", "창");
a전사.공격("마크", "지팡이");
a전사.재공격();
a전사.재공격();
}
}
class 전사{
String last_name;
String last_weapon;
void 공격(String name, String weapon) {
this.last_name = name;
this.last_weapon = weapon;
System.out.println(name + "(이)가 " + weapon + "(으)로 공격합니다.");
}
void 재공격(){
String name = last_name;
String weapon = last_weapon;
System.out.println(name + "(이)가 " + weapon + "(으)로 공격합니다.");
}
}
👽 서로 다른 3개의 TV를 1개의 리모콘으로 컨트롤
class Main {
public static void main(String[] args) {
System.out.println("== 표준Tv 리모콘 들여오기 전 ==");
샤오미Tv a샤오미Tv = new 샤오미Tv();
삼성Tv a삼성Tv = new 삼성Tv();
LGTv aLGTv = new LGTv();
a샤오미Tv.켜기();
a샤오미Tv.끄기();
a샤오미Tv.vr켜기();
a삼성Tv.켜기();
a삼성Tv.끄기();
a삼성Tv.ar켜기();
aLGTv.켜기();
aLGTv.끄기();
aLGTv.게임모드전환();
System.out.println("== 표준Tv 리모콘 들여온 후 ==");
표준Tv a표준Tv;
a표준Tv = a샤오미Tv;
a표준Tv.켜기();
a표준Tv.끄기();
a표준Tv = a삼성Tv;
a표준Tv.켜기();
a표준Tv.끄기();
a표준Tv = aLGTv;
a표준Tv.켜기();
a표준Tv.끄기();
LGTv aLGTv2 = (LGTv)a표준Tv;
aLGTv2.게임모드전환();
}
}
class 표준Tv{
void 켜기(){
}
void 끄기(){
}
}
class 샤오미Tv extends 표준Tv{
void 켜기() {
System.out.println("샤오미Tv 켜집니다.");
}
void 끄기() {
System.out.println("샤오미Tv 꺼집니다.");
}
void vr켜기() {
System.out.println("샤오미Tv vr켜기!");
}
}
class 삼성Tv extends 표준Tv{
void 켜기() {
System.out.println("삼성Tv 켜집니다.");
}
void 끄기() {
System.out.println("삼성Tv 꺼집니다.");
}
void ar켜기() {
System.out.println("삼성Tv ar켜기!");
}
}
class LGTv extends 표준Tv{
void 켜기() {
System.out.println("LGTv 켜집니다.");
}
void 끄기() {
System.out.println("LGTv 꺼집니다.");
}
void 게임모드전환() {
System.out.println("LGTv 게임모드전환!");
}
}
👽 자동차 리모콘으로 페라리 객체를 연결한 후 해당 리모콘이 가리키고 있는 객체를 다시 페라리 리모콘으로 참조하게 하는 프로그램
class Main {
public static void main(String[] args) {
페라리 a자동차 = new 페라리();
a자동차.달리다();
a자동차.서다();
a자동차.뚜껑이_열리다();
}
}
class 자동차 {
void 달리다() {
System.out.println("부릉");
}
void 서다() {
System.out.println("멈춰!");
}
}
class 페라리 extends 자동차 {
void 뚜껑이_열리다() {
System.out.println("뚜껑 열려유");
}
}
👽 사람이 a왼팔 이라는 변수를 가질 수 있게 만들기
class Main {
public static void main(String[] args) {
사람 a사람 = new 사람();
a사람.나이 = 20;
a사람.a왼팔 = new 팔();
}
}
class 사람 {
int 나이;
팔 a왼팔;
}
class 팔 extends 사람 {
}
👽 전사가 가지고 있는 변수 a무기가 칼과 활에 모두 호환되게 하는 프로그램
class Main {
public static void main(String[] args) {
전사 a전사 = new 전사();
a전사.나이 = 20;
a전사.a무기 = new 활();
a전사.a무기 = new 칼();
}
}
class 전사{
int 나이;
무기 a무기;
}
class 무기 {
}
class 활 extends 무기{
}
class 칼 extends 무기{
}