From 9b81e125fb7eb6ed77bd49a70cd560fab1ca3364 Mon Sep 17 00:00:00 2001 From: haerong22 Date: Fri, 12 Mar 2021 14:04:12 +0900 Subject: [PATCH] java oop : interface --- JavaOOP/src/Java23.java | 19 +++++++++++++++++++ JavaOOP/src/Java24.java | 20 ++++++++++++++++++++ JavaOOP/src/poly/Animal.java | 11 +++++++++++ JavaOOP/src/poly/Cat.java | 12 ++++++++++++ JavaOOP/src/poly/Dog.java | 8 ++++++++ JavaOOP/src/poly/Radio.java | 18 ++++++++++++++++++ JavaOOP/src/poly/RemoCon.java | 13 +++++++++++++ JavaOOP/src/poly/TV.java | 18 ++++++++++++++++++ 8 files changed, 119 insertions(+) create mode 100644 JavaOOP/src/Java23.java create mode 100644 JavaOOP/src/Java24.java create mode 100644 JavaOOP/src/poly/Animal.java create mode 100644 JavaOOP/src/poly/Cat.java create mode 100644 JavaOOP/src/poly/Dog.java create mode 100644 JavaOOP/src/poly/Radio.java create mode 100644 JavaOOP/src/poly/RemoCon.java create mode 100644 JavaOOP/src/poly/TV.java diff --git a/JavaOOP/src/Java23.java b/JavaOOP/src/Java23.java new file mode 100644 index 00000000..ee72704c --- /dev/null +++ b/JavaOOP/src/Java23.java @@ -0,0 +1,19 @@ +import poly.Animal; +import poly.Cat; +import poly.Dog; + +public class Java23 { + public static void main(String[] args) { + // 추상클래스 + // Animal animal = new Animal; (X) + // upcasting 으로 활용 + Animal cat = new Cat(); + Animal dog = new Dog(); + + cat.eat(); + cat.move(); + + dog.eat(); + dog.move(); + } +} diff --git a/JavaOOP/src/Java24.java b/JavaOOP/src/Java24.java new file mode 100644 index 00000000..3d6cdfa6 --- /dev/null +++ b/JavaOOP/src/Java24.java @@ -0,0 +1,20 @@ +import poly.Radio; +import poly.RemoCon; +import poly.TV; + +public class Java24 { + public static void main(String[] args) { + // 인터페이스 + // 객체 생성 X : RemoCon r = new RemoCon(); (X) + + RemoCon r = new TV(); + r.chUp(); + r.chDown(); + r.internet(); + + r = new Radio(); + r.chUp(); + r.chDown(); + r.internet(); + } +} diff --git a/JavaOOP/src/poly/Animal.java b/JavaOOP/src/poly/Animal.java new file mode 100644 index 00000000..5b6017ed --- /dev/null +++ b/JavaOOP/src/poly/Animal.java @@ -0,0 +1,11 @@ +package poly; + +// 추상 클래스 -> 불완전 클래스 : 객체 생성 불가 new Animal() (X) +public abstract class Animal { + + public abstract void eat(); // 추상 메소드 -> 불완전 메소드 + + public void move() { // 일반 메소드도 작성 가능 + System.out.println("이동한다."); + } +} diff --git a/JavaOOP/src/poly/Cat.java b/JavaOOP/src/poly/Cat.java new file mode 100644 index 00000000..01bfa43a --- /dev/null +++ b/JavaOOP/src/poly/Cat.java @@ -0,0 +1,12 @@ +package poly; + +public class Cat extends Animal { + @Override + public void eat() { + System.out.println("고양이가 먹는다"); + } + + public void say() { + System.out.println("냐옹옹"); + } +} diff --git a/JavaOOP/src/poly/Dog.java b/JavaOOP/src/poly/Dog.java new file mode 100644 index 00000000..120349ff --- /dev/null +++ b/JavaOOP/src/poly/Dog.java @@ -0,0 +1,8 @@ +package poly; + +public class Dog extends Animal { + @Override + public void eat() { + System.out.println("개가 먹는다"); + } +} diff --git a/JavaOOP/src/poly/Radio.java b/JavaOOP/src/poly/Radio.java new file mode 100644 index 00000000..7a9d0f01 --- /dev/null +++ b/JavaOOP/src/poly/Radio.java @@ -0,0 +1,18 @@ +package poly; + +public class Radio implements RemoCon{ + @Override + public void chUp() { + System.out.println("Radio 채널이 올라간다."); + } + + @Override + public void chDown() { + System.out.println("Radio 채널이 내려간다."); + } + + @Override + public void internet() { + System.out.println("Radio는 인터넷 사용 불가"); + } +} diff --git a/JavaOOP/src/poly/RemoCon.java b/JavaOOP/src/poly/RemoCon.java new file mode 100644 index 00000000..c50c013c --- /dev/null +++ b/JavaOOP/src/poly/RemoCon.java @@ -0,0 +1,13 @@ +package poly; + +public interface RemoCon { // 객체 생성 X : RemoCon r = new RemoCon(); (X) + + // 상수를 사용가능 ( public static final 생략 ) + int MAXCH = 100; + int MINCH = 1; + + // public abstract 생략 + void chUp(); + void chDown(); + void internet(); +} diff --git a/JavaOOP/src/poly/TV.java b/JavaOOP/src/poly/TV.java new file mode 100644 index 00000000..a574368b --- /dev/null +++ b/JavaOOP/src/poly/TV.java @@ -0,0 +1,18 @@ +package poly; + +public class TV implements RemoCon{ + @Override + public void chUp() { + System.out.println("TV의 채널이 올라간다."); + } + + @Override + public void chDown() { + System.out.println("TV의 채널이 내려간다."); + } + + @Override + public void internet() { + System.out.println("TV는 인터넷 사용 가능"); + } +}