'Java > Inheritance(상속)' 카테고리의 다른 글

상속 접근 지정자 살피기  (0) 2012.04.11
상속으로 핸드폰 만들기  (0) 2012.04.11
슈퍼 클래스와 서브 클래스 만드는 예제  (0) 2012.04.11
상속 기본  (0) 2012.04.11
package com.ext2;//상속 접근 지정자 살펴보기
class Point2D{
	private int x=10; //private 접근제한의 경우 
						//상속관계의 자식클래스 에서호출불가
	protected int y=20;
	int z = 30;
	public int getX(){//캡슐화로 가져다 쓰기
		return x;
	}
}

class Point3D extends Point2D{
	public void print(){
		//X가 접근 제한이 private 이기 때문에 호출불가
		//System.out.println(x +", "+y+ ", "+z);
		//사용하려면 private - > protected로 변경
		//메소드 생성후 은닉화 해서 캡슐화로 가져다 쓰기
		System.out.println(y+", "+z);
		System.out.println(getX() +", "+y+ ", "+z);
	}

}

public class SuperSub04 {
	public static void main (String[] args){
		Point3D p = new Point3D();
		p.print();
	}
}

20, 30

10, 20, 30






성격 살피기

package packTest.packOne;//접근 지정자의 성격 살피기-1

public class AccessTest {
	private int   a=10; //[1]private
	int 		  b=20;
	protected int c=30;
	public	  int d=40;
	
	public void print(){
		System.out.println("AccessTest의 print");
		System.out.println("a");
		System.out.println("b");
		System.out.println("c");
		System.out.println("d");
	}
}


package packTest.packTwo;//접근 지정자의 성격살피기-2
import packTest.packOne.AccessTest;

class SubOne extends AccessTest{
	void subPrn(){
		//System.out.println(a); //private 다른 클래스에서 호출불가
		//System.out.println(b); //default 다른 패키지에서 호출불가
		System.out.println(c); //protected 상속관계에선 어디서든 호출가능(패키지가 달라도)
		System.out.println(d); //public 접근 제한 없음
	}
}
//AccessTest랑 상속관계가 없는 클래스
public class SuperSubA {
	public static void main(String[] args){
		AccessTest at = new AccessTest();
		at.print();
		System.out.println("main");
		//System.out.println(at.a);//private 다른 클래스에서 호출불가
		//System.out.println(at.b);//default 다른 패키지에서 호출불가
		//System.out.println(at.c);//protected 상속관계가 아니고 다른 패키지에서 호출불가
		System.out.println(at.d);//[4.main] public - o
		//protected는 같은패키지에선 호출이 가능하지만 상속을 해주면 어느 클래스든 호출가능
	}
}

AccessTest의 print
a
b
c
d
main
40

'Java > Inheritance(상속)' 카테고리의 다른 글

예비  (0) 2012.04.11
상속으로 핸드폰 만들기  (0) 2012.04.11
슈퍼 클래스와 서브 클래스 만드는 예제  (0) 2012.04.11
상속 기본  (0) 2012.04.11
package com.ext3;//상속으로 핸드폰 만들기1

public class CellPhone {
	//휴대폰 기본 기능을 제공하는 클래스
	//private면은 가져다 쓸수 없지만 protected는 사용가능
	protected String model;
	protected String number;
	protected int chord;
	
	public String getModel(){
		return model;
	}
	public int getChord(){
		return chord;
	}
	public String getNumber(){
		return number;
	}

}


package com.ext3;

public class CellPhoneMain {
	public static void main(String[] args){
		DicaPhone dca = new DicaPhone("IN-7600","N235",60,"400만");
		MP3Phone mp = new MP3Phone("KN-600","S300",60,256);

		System.out.println("=============================");
		System.out.println("모델\t번호\t코드\t옵션(화소수/사이즈)");
		System.out.println("=============================");

		System.out.print(dca.getModel()+"\t");
		System.out.print(dca.getNumber()+"\t");
		System.out.print(dca.getChord()+"\t");
		System.out.print(dca.getPixel()+"\n");

		System.out.print(mp.getModel()+"\t");
		System.out.print(mp.getNumber()+"\t");
		System.out.print(mp.getChord()+"\t");
		System.out.print(mp.getSize()+"\n");
	}
}


package com.ext3;//디카폰
class DicaPhone extends CellPhone{
	private String pixel;
	public DicaPhone(String model,String number,
			int chord, String pixel){//cellphone에 있는것들 호출
		this.model = model;
		this.number = number;
		this.chord = chord;
		this.pixel = pixel;
		
		//this라 붙이면 CellPhone의  protected에 접근하게됨
	}//set메소드는 생성자를 통해서 구현
	public String getPixel(){
		return pixel;
	}
}


package com.ext3;	
public class MP3Phone extends CellPhone{
	//부모 클래스인 cellphone를 상속받아 기능을 확장한 MP3Phone
	private int size; //저장용량
	public MP3Phone(String model,String number,
			int chord, int size){
		this.model = model;
		this.number = number;
		this.chord = chord;
		this.size = size;
	}
	public int getSize() {
		return size;
	}
}


'Java > Inheritance(상속)' 카테고리의 다른 글

예비  (0) 2012.04.11
상속 접근 지정자 살피기  (0) 2012.04.11
슈퍼 클래스와 서브 클래스 만드는 예제  (0) 2012.04.11
상속 기본  (0) 2012.04.11
package com.ext2;//슈퍼 클래스와 서브 클래스 만드는 예제

class Parent{
	public void parentPrn(){
		System.out.println("슈퍼 클래스 메서드는 상속된다.");
	}
}

//Parent를 슈퍼클래스로 하는 서브 클래스 child정의
class Child extends Parent{
	public void childPrn(){
		System.out.println("서브 클래스 메서드는 슈퍼가 사용못한다.");
	}
}
public class SuperSub01 {
	public void main(String[] args){
		Child c = new Child();	//서브클래스로 객체를 생성
		//그 상위의 부모클래스를 메모리에 저장함parent랑 object둘다 메모리에 작성됨
		c.parentPrn();			//슈퍼 클래스에서 상속받은 메서드 호출
		c.childPrn();			//서브 클래스 자기 자신의 메서드 호출
		System.out.println("---------------------------->>");
		Parent p = new Parent();	//슈퍼 클래스로 객체 생성
		p.parentPrn();				//슈퍼 클래스 자기 자신의 메서드 호출
		//childPrn(); 				객체에 포함되어 있지 않기 때문에 호출불가
		//p.childPrn();				//서브 클래스 메서드는 가져다 사용못함
	}
}

부모클래스

자식 클래스


'Java > Inheritance(상속)' 카테고리의 다른 글

예비  (0) 2012.04.11
상속 접근 지정자 살피기  (0) 2012.04.11
상속으로 핸드폰 만들기  (0) 2012.04.11
상속 기본  (0) 2012.04.11
package com.ext;//상속 기본1

class Parent extends Object{//extends Object는 일반적으로  생략가능
	int a = 100;
}

class Child extends Parent{
	int b = 200;
}

public class Exten01 {
	public static void main(String[] args){
		Child c = new Child();
		System.out.println("a = "+c.a);
		System.out.println("b = "+c.b);
	}
}

a = 100

b = 200







package com.ext;//상속 기본2

class Parent2{
	public void make(){
		System.out.println("부모클래스");
	}
}

class Child2 extends Parent2{
	public void fun(){
		System.out.println("자식 클래스");
	}
}
public class Exten02 {
	public static void main (String[] args){
		Child2 ch = new Child2();
		/*1.Child2의 객체 생성을 위해 Child2()를 호출
		2.Child2() -> 부모클래스의 default 생성자 호출
		3.부모 클래스가 먼저 메모리에 올라간후
		4.자식 클래스가 메모리에 올라감*/ 
		ch.make();
		ch.fun();
	}

}

부모클래스

자식 클래스


'Java > Inheritance(상속)' 카테고리의 다른 글

예비  (0) 2012.04.11
상속 접근 지정자 살피기  (0) 2012.04.11
상속으로 핸드폰 만들기  (0) 2012.04.11
슈퍼 클래스와 서브 클래스 만드는 예제  (0) 2012.04.11

+ Recent posts