public class People
{
private String name ;
private int old ;
private static int sum ;
public People()
{
this.sum = this.sum + 1 ;
}
public People(String name , int old )
{
this.name = name ;
this.old = old ;
this.sum = this.sum + 1 ;
}
public void setName(String name)
{
this.name = name ;
}
public String getName()
{
return name ;
}
public void setOld(int old)
{
this.old = old ;
}
public int getOld()
{
return this.old ;
}
public int getsum()
{
return this.sum ;
}
} // End Class PerPloe
subclass Code (Java)
public class Job extends People
{
private String job ;
public Job()
{
this.job = "" ;
}
public Job(String name , int old ,String job )
{
this.job = job ;
this.setName(name) ;
this.setOld(old) ;
}
public String getJob()
{
return this.job ;
}
}
class Main Code (Java)
public class Main
{
public static void main(String[] arg)
{
System.out.println("Create People");
People p = new People();
p.setName("Flap") ;
p.setOld(21);
System.out.println("People Name "+p.getName());
System.out.println("People Old "+p.getOld());
System.out.println("Sum "+p.getsum());
People p1 = new People("Jack",23);
System.out.println("PerPloe Name "+p1.getName());
System.out.println("PerPloe Old "+p1.getOld());
System.out.println("Sum "+p1.getsum());
System.out.println("Create JOB");
Job jb = new Job("Nop",21,"CP");
System.out.println("jb name "+jb.getName());
System.out.println("jb old "+jb.getOld());
System.out.println("jb Sum "+jb.getsum());
}
}
เมื่อผม debug ดู
ืทำไม เมื่อเข้า constructor ของ class Job อยู่ก็ กระโดดไป ที่ constructor People ได้ ครับ
Tag : Java, JAVA
Date :
2015-01-22 01:15:58
By :
flapjack
View :
2999
Reply :
2
No. 1
Guest
ตอบครับ ปกติถ้ามีการสืบทอดกันระหว่าง Sub class กับ Super Class จะมีการเรียกใช้ คุณสมบัติของ Class แม่ก่อนอยู่แล้วครับ ดังนั้นไม่แปลกครับ ที่ Sub Class จะเรียกใช้ constructor ของ Super Class ก่อนที่จะมา เรียก constructor ของตัวมันเองครับ