class Point{
int x;
int y;
** String getLocation(){
return "x :" + x + ", y :"+y;**
}
}
class Point3D extends Point {
int z;
String getLocation(){
return "x :" +x+ ", y:"+y ", z:" + z;**
}
}
자손 클래스에서 오버라이딩하는 메서드는 조상 클래스의 메서드와
class Parent {
void parentMethod() throws IOException, SQLException{
...
}
}
class Child extends Parent{
void parentMethod() throws IOException{
...
}
...
}
class Child extends Parent{
void parentMethod() throws Exception{
...
}
...
}
class Parent{
void parentMethod(){}
}
class Child extends Parent {
void parentMethod(){} //오버라이딩
void parentMethod(int i){} //오버로딩
void childMethod(){}
void childMethod(int i){} //오버로딩
void childMethod(){} //에러 중복정의 되었음
class SuperTest2{
public static void main(String args[]){
Child c = new Child();
c.method();
}
}
class Parent{
int x=10;
}
class Child extends Parent{
int x=20;
void method(){
System.out.println("x=" + x);
System.out.println("this.x=" + this.x);
System.out.println("super.x="+ super.x);
}
}
class Point{
int x;
int y;
String getLocation(){
return "x :" + x+", y:"+y;
}
}
class Point3D extends Point{
int z;
String getLocation(){ //오버라이딩
// return "x :" + x +", y:" +y+", z:" +z;
return super.getLocation()+",z:"+z;//조상의 메서드 호출
Object클래스를 제외한 모든 클래스의 생성자 첫 줄에 생성자,this() 또는 super(),를
호출해야 한다. 그렇지 않으면 컴파일러가 자동적으로 'super();'를 생성자의 첫 줄에 삽입한다.
class PointTest{
public static void main(String args[]){
Point3D p3 = new Point3D(1,2,3);
}
}
class Point{
int x, y;
Point(int x, int y){
this.x = x;
this.y = y;
}
String getLocation(){
return "x :" + x + ", y :" + y;
}
}
class Point3D extends Point{
int z;
point3D(int x, int y, int z) {
//생성자 첫 줄에서 다른 생성자를 호출하지 않기 때문에 컴파일러가 'super();'를 여기에 삽입한다.
//super()는 Point3D의 조상인 Point클래스의 기본 생성자인 Point()를 의미한다.
this.x = x; // 조상의 멤버를 초기화
this.y = y; // 조상의 멤버를 초기화
this.z = z;
}
String getLocation(){
return "x :" + x + ", y :" + y + ", z :" +z;
}
}
Point3D(int x, int y, int z) {
super(x, y); //조상클래스의 생성자 Point(int x, int y)를 호출한다.
this.z = z;
}