'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 |