属性是父类的属性。
这是多态的范畴。也常用于接口回调等。
注意不要调用子类的新方法。
当父类是抽象类时,就可用这种构造方式得到能使用指定方法的对象。
如:Map
mp
=
new
HashMap()
一,java子类不能继承父类的构造方法(可以调用,但不是继承):1、构造方法的定义是与类的名称相同:如果子类能够继承父类的构造方法,那么在子类的构造方法中就有不同于子类名称的构造法;
2、这与构造方法的定义不符,因此子类是不能继承父类的构造方法的;
3、以上参考资料来源:http://bbs.csdn.net/topics/360118234
二,子类继承父类时,需要注意以下三点:
1、在子类继承父类的时候,子类必须调用父类的构造函数;
2、在父类有默认构造函数,子类实例化时自动调用,在父类没有默认构造函数,即无形参构造函数,子类构造函数必须通过super调用父类的构造函数;
3、在java的继承当中子类是不可以继承父类的构造函数,只能调用父类的构造函数。
子类可以继承父类的构造方法,并遵循以下原则:1、子类无条件的继承父类的无参构造方法。
2、子类自身没有定义构造方法,继承父类的无参构造方法,作为构造方法;子类自身定义了无参构造方法。
3、对于父类的含参构造方法,子类可以在自己的构造方法的第一行使用关键字super来调用。
代码如下:
//Fighter.java
class Airplane{
private int speed
public Airplane(int s) {
speed=s
System.out.println
}
}
class Warplane extends Airplane{
public Warplane() {
super(600)
System.out.println
}
public Warplane(int s) {
super(s)
System.out.println
}
}
public class Fighter extends Warplane{
public Fighter(){
super()
System.out.println)
}
public Fighter(int s){
super(s)
System.out.println
}
public static void main(String[] args) {
System.out.println
Fighter f1=new Fighter()
System.out.println
Fighter f2=new Fighter(500)
}
}