하위클래스에 interface 2개 상속받아서 다중구현
interface1
interface InterA{
public void draw();
public void write();
}
interface2
interface InterB{
public void play();
}
하위클래스
implements interface명1,interface명2
class Impl implements InterA,InterB{
@Override
public void play() {
System.out.println("축구를 합니다");
}
@Override
public void draw() {
System.out.println("그림을 그립니다");
}
@Override
public void write() {
System.out.println("일기를 씁니다");
}
}
메인클래스
public class InterImpl_02 {
public static void main(String[] args) {
//생성1
Impl a=new Impl();
a.play();
a.draw();
a.write();
//다형성
InterA inA=new Impl();
inA.draw();
inA.write();
InterB inB=new Impl();
inB.play();
}
}
interface1을 interface2에 상속시키고 하위클래스에 interface2를 상속시킨 방법
interface1
interface InterAA{
public void eat();
public void go();
}
interface2
interface InterBB extends InterAA{
public void ride();
}
하위클래스
class InterImpl2 implements InterBB{
@Override
public void eat() {
System.out.println("저녁을 먹어요");
}
@Override
public void go() {
System.out.println("롯데월드 가요");
}
@Override
public void ride() {
System.out.println("자전거 타고 놀아요");
}
}
메인클래스
public class InterExtends_03 {
public static void main(String[] args) {
InterImpl2 a=new InterImpl2();
a.eat();
a.go();
a.ride();
InterBB c=new InterImpl2();
c.eat();
c.go();
c.ride();
}
}
상위클래스(추상클래스)
abstract class Game{
abstract void play();
abstract void stop();
}
하위클래스(상위클래스 1개를 하위클래스 3개 상속)
class SungHyeon extends Game{
@Override
void play() {
System.out.println("성현이가 게임을 합니다");
}
@Override
void stop() {
System.out.println("성현이가 게임을 종료합니다");
}
}
class SoonYeong extends Game{
@Override
void play() {
System.out.println("순영이가 게임을 합니다");
}
@Override
void stop() {
System.out.println("순영이가 게임을 종료합니다");
}
}
class SunBum extends Game{
@Override
void play() {
System.out.println("선범이가 게임을 합니다");
}
@Override
void stop() {
System.out.println("선범이가 게임을 종료합니다");
}
}
메인클래스 for문 배열 이용
public class ArrConst_04 {
public static void main(String[] args) {
Game arr[]= {new SungHyeon(),new SoonYeong(),new SunBum()};
for(int i=0;i<arr.length;i++)
arr[i].play();
System.out.println("-----------------------");
for(int i=arr.length-1;i>=0;i--)
arr[i].stop();
}
}
CRUD-게시물 추가, 조회, 수정, 삭제
interface
interface Board{
public void process();
}
하위클래스(상위클래스 상속)
class Insert implements Board{
@Override
public void process() {
System.out.println("게시판에 게시물을 추가합니다");
}
}
class Select implements Board{
@Override
public void process() {
System.out.println("게시판에 게시물을 조회합니다");
}
}
class Update implements Board{
@Override
public void process() {
System.out.println("게시판에 게시물을 수정합니다");
}
}
class Delete implements Board{
@Override
public void process() {
System.out.println("게시판에 게시물을 삭제합니다");
}
}
메인클래스
public class BordCRUD_0 {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
Board board=null;
int n; //입력할 숫자
while(true)
{
System.out.println("1.추가 2.조회 3.수정 4.삭제");
System.out.println("=================================");
n=Integer.parseInt(sc.nextLine());
switch(n)
{
case 1:
board=new Insert();
break;
case 2:
board=new Select();
break;
case 3:
board=new Update();
break;
case 4:
board=new Delete();
break;
case 9:
System.out.println("종료합니다");
System.exit(0); //강제종료
default:
System.out.println("**잘못입력했어요**");
break;
}
if(n<=4)
board.process();
}
}
}
상위클래스(추상클래스)
abstract class Command{
public abstract void write(); // ==abstract public void write();
}
하위클래스
class Insert1 extends Command{
@Override
public void write() {
System.out.println("추가합니다");
}
}
class List extends Command{
@Override
public void write() {
System.out.println("조회합니다");
}
}
class Modify extends Command{
@Override
public void write() {
System.out.println("수정합니다");
}
}
class Delete1 extends Command{
@Override
public void write() {
System.out.println("삭제합니다");
}
}
메인 클래스
public class OracleCRUD_06 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
Command c=null;
int n;
while(true)
{
System.out.println("1.추가 2.조회 3.수정 4.삭제");
System.out.println("================================");
n=Integer.parseInt(sc.nextLine());
/*
if(n==1)
c=new Insert1();
else if(n==2)
c=new List();
else if(n==3)
c=new Modify();
else if(n==4)
c=new Delete1();
else
break;
*/
switch(n)
{
case 1:
c=new Insert1();
break;
case 2:
c=new List();
break;
case 3:
c=new Modify();
break;
case 4:
c=new Delete1();
break;
case 9:
System.out.println("종료합니다");
System.exit(0);
default:
System.out.println("잘 못 입력했어요");
break;
}
if(n<=4)
c.write();
}
}
}