1.ParentClass

package com.ohj.extend;

public class ParentClass {
	private int n=10;// 부모클래스,본인클래스 내부에서만 사용 가능한 변수
	
	boolean b = false;//같은 패키지 내부에서만 사용 가능한 변수
	
	public char c='A';//어디서든 접근 사용 가능한 변수
	
	protected String s ="test";//패키지가 달라도 자식 클래스에게는 허용
	
	public ParentClass() {
		System.out.println("PatrentClass()생성자 내부");
	}
	
	public ParentClass(int n) {
		this.n=n;
		System.out.println(n);
	}
	
	public void ParentMethod() {//어디서든 호출가능
		System.out.println("PatrentMethod()생성자 내부");
	}
	
	void defaultClass(){//같은패키지내에서만 호출가능
		System.out.println("defaultClass()생성자 내부");
	}
	
	private void privateMethod() {//부모 클래스 내부에서만 호출 가능
		System.out.println("privateMethod()생성자 내부");
	}

}

 

2.childClass

package com.ohj.extend;

//new ParentClass();

public class ChildClass extends ParentClass{//extends : 물려받는 것

	public ChildClass() {

		//super();//부모 클래스를 호출한다. 무조건 앞에다가 적어줘야한다.
		super(250);

		System.out.println("ChildClass 생성자 내부");

	}
}

3.OtherClass

package com.ohj.extend.pkg;

// 다른 패키지에 있는 클래스를 사용 할 경우 반드시 import
import com.ohj.extend.ParentClass;

public class OtherClass extends ParentClass {
	public OtherClass() {
		System.out.println("OtherClass 생성자 내부");
	}

	public void ParentMethod() {//어디서든 호출가능
	
	int s =100;
	
	System.out.println("OtherClass PatrentMethod 내부"+100);
	
	//부모로부터 받은 메소드를 자식이 고쳐서 쓸 수 있다. 이와 같은 기법을 override라고 부른다.
	//자식클래스는 부모로부터 물려받은 메소드의 {}내부만 수정 가능하다.
	
	}
}

4.MainClass

package com.ohj.extend;

import com.ohj.extend.pkg.OtherClass;

// 상속, 접근제한자에 관한 내용

public class MainClass {
	public static void main(String[] args) {

		//ParentClass pc= new ParentClass();
		
		ChildClass cc= new ChildClass();//boolean b변수를 상속한다.
		
		//OtherClass oc = new OtherClass();	
	}
}

 

1.InfoClass

package com.ohj.news;

public class InfoClass {
	int a=10;
	String s="info";

	public InfoClass(){//클래스 생성자가 없을 때 기본 생성자를 만들어준다.
	}

	public InfoClass(int n,String s){
	
		this.a = n;
		this.s = s;
	
	}

//오버라이드:상속된 자식이 내부를 고치는 것

	public String toString(){
		return a+" "+s;
	}

	public static void test(int n){
		int c = a;
	}

	public static void t(){
		int b =	a;
	}

}

2.MainClass

package com.ohj.news;

public class MainClass {
	
public static void main(String[] args) {

	InfoClass ic1= new InfoClass();
	InfoClass ic2= new InfoClass();
	
	System.out.println(ic1.toString());
	
	//com.ohj.news_ex.InfoClass@15db9742
	System.out.println(ic2.toString());
	
	//com.ohj.news_ex.InfoClass@6d06d69c 참조값 알아내기
	System.out.println(ic1.getClass());
	
	//class com.ohj.news_ex.InfoClass 어떤 객체의 타입을 알고 싶다.
	}
}

+ Recent posts