Java---继承

1.继承:

继承主要是子类继承父类。由关键词extends来表达。已存在的类称为父类,新建的类称为子类

2.方法的覆盖

父类一个echo方法,子类里也需要声明一个echo方法,称为方法的覆盖(@Override)

3.关键词super

我们可以通过super实现对父类构造器的调用。使用super调用构造器的语句必须是子类构造器的第一条语句

4.构造器注意

如果子类的构造器没有显示的调用父类的构造器,则将自动的调用超累默认(没有参数)的构造器。如果父类没有不带

参数的构造器,并且在子类的构造器中又没有显示的调用父类的其他构造器,则JAVA编译错误

5.代码实例:

public class Car {
    private String name ="汽车";
    private double price =10.0;
    private static int aa =5;
  
    
	public String getName() {
		return name;
	}
	
	public static int getAa() {
		return aa;
	}

	public static void setAa(int aa) {
		Car.aa = aa;
	}

	@Override
	public String toString() {
		return "Car [name=" + name + ", price=" + price + "]";
	}

	public void setName(String name) {
		this.name = name;
	}
	public Double getPrice() {
		return price;
	}
	public void setPrice(double price) {
		this.price = price;
	}
    public void echo() {
		System.out.println("name " + name +"price "+ price );
	}
}
public class BMWCar extends Car {
	private String color;
	private String voice;
	
       public String getColor() {
		return color;
	}

	public void setColor(String color) {
		this.color = color;
	}

	public String getVoice() {
		return voice;
	}

	public void setVoice(String voice) {
		this.voice = voice;
	}
	@Override
    public void echo() {
    	// TODO Auto-generated method stub
    	   System.out.println("Car [name=" + super.getName() + ", price=" + super.getPrice() + "]"+"BMWCar [color=" + color + ", voice=" + voice + "]" );
    }
}

6.注意点:

public class Demo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//工厂模式,
		//Car car =new BMWCar();
		//和下面的一样的效果
           Car car =new Car();  
           System.out.println(car);
           BMWCar bmwCar =new BMWCar();
           System.out.println(bmwCar);
           car = bmwCar;
           System.out.println(car);
	}

}

这里car不会发生丢失,注释写的比较节约内存这样的写法更好,如果不理解请各位看下面的图

 

猜你喜欢

转载自blog.csdn.net/qq_33188563/article/details/81086184