1、父类
package com.wyq.study;
public class Car {
//1、书写私有属性
private String carType;
private String carNo;
public void setCarType(String carType){
this.carType = carType;
}
public String getCarType(){
return carType;
}
public void setCarNo(String CarNo){
this.carNo = carNo;
}
public String getCarNo(){
return carNo;
}
public Car(){
super();
System.out.println("这里是无参的构造方法。");
}
public Car(String carType,String carNo){
super();
this.carType = carType;
this.carNo = carNo;
System.out.println("这里是父类的带参构造方法。");
}
public void start(){
System.out.println("我是车,我启动");
}
public void stop(){
System.out.println("我是车,我停止");
}
public void tst(String sdf){
System.out.println("这里是测试附列的普通方法"+this.carType+"\t"+carNo+"\t+"+sdf);
}
}
2、子类1
package com.wyq.study;
public class Taxi extends Car{
private String company;
public void setCompany(String company){
this.company = company;
}
public String getCompany(){
return company;
}
public Taxi(){
super();
}
public Taxi(String carType,String carNo,String company){
super(carType,carNo);
this.company = company;
System.out.println("这里是子类的带参构造:"+company+"\t"+super.getCarType()+"\t"+super.getCarNo());
}
@Override
public void start() {
super.start();
System.out.println("我是"+company+"公司的,我是车,我启动。");
}
@Override
public void stop() {
super.stop();
System.out.println("我是"+company+"的,我是车,我停止");
}
public void run(String place){
System.out.println("在"+place+"跑。");
}
}
2、子类2
package com.wyq.study;
public class MyCar extends Car{
private String name;
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public MyCar(){
super();
}
public MyCar(String carType,String carNo,String name){
super(carType,carNo);
this.name = name;
}
@Override
public void start() {
super.start();
System.out.println("我是"+name+"我启动"+super.getCarType()+"\t"+super.getCarNo());
}
@Override
public void stop() {
super.stop();
System.out.println("我是"+this.name+"我的汽车,我停止。");
}
}
3、测试类
package com.wyq.study;
public class TestCar {
public static void main(String[] args) {
// Car c = new Car("大众","123456");
// c.start();
// c.stop();
System.out.println("**********************************");
// Car ta = new Taxi("北京现代","京A11111", "景顺出租车");
// ta.start();
// ta.stop();
ta.run("北京");
// System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
// Car mc = new MyCar("奥迪A8","京P882","张三");
// mc.start();
// mc.stop();
System.out.println("输出所有的属性:"+c.getCarType()+"\t"+c.getCarNo()+"\t"+ta.getCarType()+"\t"+ta.getCarNo()+"\t"+ta.getCompany()+"\t"+mc.getCarType()+"\t"+mc.getCarNo()+"\t"+mc.getName());
//向下类型转换
// Taxi tx = (Taxi) c;
// tx.run("深圳");
// System.out.println("向下类型转化的结果为:"+tx.getCarType()+"\t"+tx.getCarNo()+"\t"+tx.getCompany());
//
// tx.tst("adjkfhskjdfhk");
//第二种
System.out.println("向下类型转换");
Car ca = new Taxi("北京现代","京A11111", "景顺出租车");
// ca.start();
// ca.tst("afjsdjlkfs");
// ca.stop();
Taxi tg = (Taxi)ca;
tg.start();
tg.stop();
tg.run("海淀");
tg.tst("#################");
//第三种
System.out.println("第三种向下转换类型的方法");
Car cr = new Car();
if(cr instanceof Taxi){
System.out.println("sjfdlksjdlkfjslk");
Taxi ti = (Taxi) cr;
ti.start();
ti.stop();
ti.tst("********************");
ti.run("昌平");
} else
System.out.println("没有向下做类型转换");
}
}