定义一个父类 Car
public class Car {
private String name = "汽车";
private double price=10.0;
public String getName() {
return name;
}
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.err.println("name:"+name+"price:"+price);
}
定义一个子类 BMWCar 继承 Car 类
package com.qcbyedu.demo;
public class BMWCar extends Car {
private String color = "red";
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public void echo() {
// TODO Auto-generated method stub
System.err.println("name:" + super.getName() + "price:"+super.getPrice()+"color:"+color);
}
}
定义一个Test类:
package com.qcbyedu.demo;
public class Test {
public static void main(String [] args) {
Car car = new BMWCar();
Car car1 = new Car();
BMWCar bMWCar = new BMWCar();
car1 = bMWCar;
car.echo();
}
}
此时的 car.echo 将会输出 name:汽车price:10.0color:red
这是因为Car car = new BMWCar(); 实例化的时候在内存申请的空间是存放 name price color 这三个属性的空间 所以子类的属性不会丢失 也就是如上代码 Test中所展现的
Car car = new BMWCar(); ===
Car car1 = new Car();
BMWCar bMWCar = new BMWCar();
car1 = bMWCar;
这三段代码的和