53 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			53 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | |||
|  | title: Inheritance Basics | |||
|  | localeTitle: 继承基础 | |||
|  | --- | |||
|  | # 继承基础
 | |||
|  | 
 | |||
|  | 你成功创建了一个Car类,真是太棒了。但是,等等,特斯拉汽车应该是电动车?我想要一个电动车类,但它也应该具有原始`Car`类的属性。 | |||
|  | 
 | |||
|  | 解决方案: **继承** 。 Java提供了一种“继承”父属性的简洁方法: | |||
|  | 
 | |||
|  | ```java | |||
|  | public class Car {  | |||
|  |   | |||
|  |     private String name;  | |||
|  |     private String manufacturerName;  | |||
|  |   | |||
|  |     public Car(String name, String man) {  | |||
|  |         this.name = name;  | |||
|  |         this.manufacturerName = man;  | |||
|  |     }  | |||
|  |     // Getter method  | |||
|  |     public String getName() {  | |||
|  |         return name;  | |||
|  |     }  | |||
|  |     // Getter method  | |||
|  |     public String getManufacturerName() {  | |||
|  |         return manufacturerName;  | |||
|  |     }  | |||
|  |  }  | |||
|  |   | |||
|  |  public class ElectricCar extends Car {  | |||
|  |   | |||
|  |     public ElectricCar(String name, String man) {  | |||
|  |         super(name, man);  | |||
|  |     }  | |||
|  |   | |||
|  |     public void charge() {  | |||
|  |      System.out.println("Charging ...");  | |||
|  |     }  | |||
|  |  }  | |||
|  |   | |||
|  |  ElectricCar modelS = new ElectricCar("Model S","Tesla");  | |||
|  |  // prints Tesla  | |||
|  |  System.out.println(modelS.getManufacturerName());  | |||
|  |  // prints Charging ...  | |||
|  |  modelS.charge();  | |||
|  | ``` | |||
|  | 
 | |||
|  |  [运行代码](https://repl.it/CJZY/0) | |||
|  | 
 | |||
|  | 在这里看,类`ElectricCar`从`Car`类继承或`extends`公共方法,并且有自己的方法和属性。传递信息的酷方式! | |||
|  | 
 | |||
|  | 另请注意这里使用[super](https://docs.oracle.com/javase/tutorial/java/IandI/super.html)关键字。由于我们的`Car`类有一个构造函数,所以我们也必须从子类初始化该构造函数。我们使用`super`关键字来做到这一点。阅读更多关于继承的信息 。 |