父类:注意(x,y是private,不能继承到子类中)
class Par {
private int x;
private int y;
int a;
public Par ( ) {
}
public Par ( int x, int y) {
this . x = x;
this . y = y;
System . out. println ( "Par..." ) ;
}
public int getX ( ) {
return x;
}
public void setX ( int x) {
this . x = x;
}
public int getY ( ) {
return y;
}
public void setY ( int y) {
this . y = y;
}
public int getA ( ) {
return a;
}
public void setA ( int a) {
this . a = a;
}
}
子类
class Son extends Par {
public Son ( int x, int y) {
super ( x, y) ;
System . out. println ( "Son..." ) ;
a= x+ y;
}
}
主函数
public class Test01 {
public static void main ( String [ ] args) {
System . out. println ( new Par ( 1 , 2 ) . a) ;
System . out. println ( new Son ( 2 , 2 ) . a) ;
}
}
输出结果
结论:子类在调用构造函数时,需要先调用父类的构造函数(创建一个父类),本案例中的x,y无法被继承下来,但依旧可以通过调用父类的super(x,y)给父类的x,y赋值,通过get方法在获取x,y的值
如果父类只有有参构造方法
class Person {
int x, y;
public Person ( int x, int y) {
this . x = x;
this . y = y;
}
public void run ( ) {
System . out. println ( "run..." ) ;
}
public void eat ( ) {
System . out. println ( "eat..." ) ;
}
}
子类的构造方法只能比父类的构造方法一样或者更多,如果建个无参那就不行了