'Java > Inheritance(상속)' 카테고리의 다른 글
상속 접근 지정자 살피기 (0) | 2012.04.11 |
---|---|
상속으로 핸드폰 만들기 (0) | 2012.04.11 |
슈퍼 클래스와 서브 클래스 만드는 예제 (0) | 2012.04.11 |
상속 기본 (0) | 2012.04.11 |
상속 접근 지정자 살피기 (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
성격 살피기
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의 printabcdmain40
예비 (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; } }
예비 (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(); //서브 클래스 메서드는 가져다 사용못함 } }
부모클래스
예비 (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
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(); } }
부모클래스
예비 (0) | 2012.04.11 |
---|---|
상속 접근 지정자 살피기 (0) | 2012.04.11 |
상속으로 핸드폰 만들기 (0) | 2012.04.11 |
슈퍼 클래스와 서브 클래스 만드는 예제 (0) | 2012.04.11 |