Java中的继承问题:
1、extends关键字。
class A{
public A(){
System.out.println("这个是A") ;
}
}
class B extends A{
public B(){}
} //B继承了A中的属性和方法
public class Test{
public static void main(String args[]){
B all = new B() ;
}
}
输出的结果为:这个是A
B类中显然没有任何属性和方法,通过继承A类中的属性和方法在客户端对B类实例化是,也就对A父类实例化了。
2、super()
在Java中,当对子类发生实例化时,系统会默认对父类实例化,也就是说系统会默认有super() 这个方法。
class A{
public A(){
System.out.println("这个是A") ;
}
}
class B extends A{
punlic B(){
System.out.println("这个是B") ;
}
} //B继承了A中的属性和方法
public class Test{
public static void main(String args[]){
B all = new B() ;
}
}
输出: 这个是A
这个是B
当有super()的情况:
class A{
public A(){
System.out.println("这个是A") ;
}
}
class B extends A{
punlic B(){
super() ;
System.out.println("这个是B") ;
}
} //B继承了A中的属性和方法
public class Test{
public static void main(String args[]){
B all = new B() ;
}
}
由运行可以知道,结果是一样的。以上是父类是无参构造的情况,在父类是有参构造的情况下:
class A{
int num ;
public A(int num){
System.out.println("这个是A" + this.num) ;
}
}
class B extends A{
int num1 ;
punlic B(int num1){
super(num1) ;
System.out.println("这个是B") ;
}
} //B继承了A中的属性和方法
public class Test{
public static void main(String args[]){
B all = new B(2) ;
}
}