AppleTree iOS

java - 10일째(source) 본문

JAVA/기초 JAVA

java - 10일째(source)

사과나무 2010. 7. 21. 15:53


package restdudy.base;

public class base6 extends base7{

 //오버라이딩: 부모에 정의된 메소드나 변수 클래스를 재정의 합니다.
 
 //변수: 데이타형과 이름이 같으면 오버라이딩
 //메소드: 데이타형과 메소드 이름과 아퀴먼트가 같으면 오버라이딩
 //클래스: 클래스를 상속받으면
 
 public void Over() {
  System.out.println("child 에서 오버라이딩");
 };
 
 public static void main(String[] args) {
  
  base6 ba= new base6();
  //오버라이딩된 메소드
  //상속 base7->base6
  
  //ba.Over();
  
  //부모=자식
  //현재커서는 부모시점으로 맞추어져있습니다.
  base7 ba2=new base6();
  
  ba2.Over();
  
  base7 ba3=new base6();
  
  //이름, 나이, 주소을 초기값으로 입력하고(변수에 초기값을 담고)
  //메소드를  get 메소드 만들고
  //자식에서 base7 ba3=new base6();
  //을 이용해서 출력해보세요.
  
  System.out.println(ba3.getName());
  System.out.println(ba3.getAddress());
  System.out.println(ba3.getAge());
 }

}





package restdudy.base;

public class base7 {

 public String name="김 영주";
 public String address="서울";
 public int age=20;
 
 
 
 public String getName() {
  return name;
 }

 

 public String getAddress() {
  return address;
 }

 

 public int getAge() {
  return age;
 }

 

 public void Over(){
  System.out.println("parent 메소드");
 }
}
























package restdudy.base.interace;

//인터페이스는 추상이기때문에
//interface 선언된 모든 메소드는 abstract (추상) 메소드입니다.
//추산은 몸체가 없습니다. (절대 올수 없습니다.)
public interface BaseCommand {

 //이름,나이,주소를 셋팅하는 메소드입니다.
 public void doExecute(String username,String address,int age);
 public void AclassMethod();
 public String Relation();
 public String EndView();
}







package restdudy.base.aclass;
import restdudy.base.interace.BaseCommand;

 

//부모:BaseCommand(인터페이스)
//자식:Aclass(추상클래스)

//인터페이스는 클래스에서 상속을 받으면 반드시 인터페이스 메소드에 있는
//몸체를 선언해야한다

//추상클래스는 인터페이스를 상속받으면 몸체를 반드시 구현하지 않아도된다
//그러나 추상클래스를 상속받는 클래스는 반드시 인터페이스에있는 메소드를 수현해야한다.


public abstract class Aclass implements BaseCommand {
 
 public void AclassMethod(){
  System.out.println("Aclass꺼");
 }
 
 public String Relation(){
  System.out.println("Aclass로 올라왔다.");
  return this.EndView();
 }

 public String EndView(){
  return"Aclass EndView";
  
 }

}








package restdudy.base.basenew;
import restdudy.base.aclass.Aclass;
import restdudy.base.interace.BaseCommand;
//BaseCommand -> Aclass -> ClientView
//public void doExecute(String username,String address,int age);
//추상클래스에서 몸체를 선언하지 않았습니다.
public class clientView extends Aclass{

 @Override
 public void doExecute(String username, String address, int age) {
  System.out.println("ClientView 현재위치");
 }
 
 @Override
 public void AclassMethod() {
  System.out.println("clientView꺼");
 }
 
 public String EndView(){
  System.out.println("Client EndView");
  return"Client EndView";
 }
 
 public String Relation(){
  super.Relation();
  return"";
 }
 
 public static void main(String[] args) {
  //현재 커서시점은 clientView
  clientView client=new clientView();
  
  client.doExecute("이름", "주소", 20);
  
  //추상클래스나 인터페이스는 new(객체를 단독으로 ) 만들수없다.
  
  //단 자식클래스가 객체흫 생성하는 서는 받을수있다.
  //현재시점은 커서가 BaseCommand 에 올라사 있습니다.
  BaseCommand base=new clientView();
  
  //여기서 깜짝 퀴즈문제
  //Aclass AclassMethod만든 문제
  
  //BaseCommand 에서 선언하고 ClientView 에서 오버라이딩해서
  //값을 뿌려보세요 단 현재 커서는 위치는 최종 BaseCommand에서 시작합니다.
  
  base.AclassMethod();
  //현재닶을 부른 시점음 오버라이딩되서 최종 클라이언트로 값을 뿌린겂니다
  //추상클래스 Aclass 에 AclassMethod 에 있는 메소드를 호출해보세요.
  //최종클라이언트 clientView 에서 해당하는 메소드를 주석처리하면 됩니다.
  
  //현재커서는
  base.Relation();
  
  
  
  }

}






'JAVA > 기초 JAVA' 카테고리의 다른 글

java - 12일째(source)  (0) 2010.07.23
java - 11일째(source)  (0) 2010.07.22
java - 9일쩨(source)  (0) 2010.07.20
java - 8일째(source)  (0) 2010.07.19
java - 7일째(source)  (0) 2010.07.16
Comments