多态初步认识

首先创建父类,因为BYD和BMW同输入汽车,有共同的属性和方法
1
public class Car { 2 int price; 3 String type; 4 String color; 5 public Car() { 6 super(); 7 } 8 public Car(int price, String type, String color) { 9 super(); 10 this.price = price; 11 this.type = type; 12 this.color = color; 13 } 14 15 public void show(){ 16 System.out.println("I can run!"); 17 } 18 }
创建BYD子类,并重写方法
1
public class BYD extends Car { 2 3 public BYD() { 4 super(); 5 } 6 7 public BYD(int price, String type, String color) { 8 super(price, type, color); 9 } 10 11 public void show(){ 12 System.out.println("BYD"); 13 System.out.println("价格"+price); 14 System.out.println("型号"+type); 15 System.out.println("颜色"+color); 16 } 17 }
 1 public class BMW extends Car {
 2     
 3     public BMW() {
 4         super();
 5     }
 6 
 7     public BMW(int price, String type, String color) {
 8         super(price, type, color);
 9     }
10 
11     public void show(){
12         System.out.println("BMW");
13         System.out.println("价格"+price);
14         System.out.println("型号"+type);
15         System.out.println("颜色"+color);
16     }
17 }
静态和非静态的问题也要注意,到底是谁调用
1
public class Driver { 2 static String name; 3 4 public Driver(String sex) { 5 this.name = name; 6 } 7 public Driver() { 8 } 9 /* 10 * 创建方法 11 */ 12 public static void drive(Car A){//static? 13 System.out.println(name+"Let's run!"); 14 A.show(); 15 } 16 17 public static void main(String[] args) { 18 Driver driver=new Driver("张三"); 19 Car byd=new BYD(3000000,"唐","红"); 20 driver.drive(byd);//这样调用可以不是static 21 Car bmw=new BMW(8000000,"x5","黑"); 22 Driver.drive(bmw);//这样调用必须是static 23 } 24 }
原文地址:https://www.cnblogs.com/hudada007/p/6714378.html