53 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						||
title: Inheritance Basics
 | 
						||
localeTitle: Основы наследования
 | 
						||
---
 | 
						||
# Основы наследования
 | 
						||
 | 
						||
Настолько замечательно, что вы успешно создали класс Car. Но, подожди, не являются ли машины Тесла электрическими вариантами? Я хочу класс Electric 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` наследует или `extends` общедоступные методы класса `Car` , а также имеет свои собственные методы и свойства. Прохладный способ передать информацию!
 | 
						||
 | 
						||
Также обратите внимание на использование ключевого слова [super](https://docs.oracle.com/javase/tutorial/java/IandI/super.html) . Поскольку наш класс `Car` имел конструктор, мы должны инициализировать этот конструктор и из дочернего класса. Мы делаем это, используя ключевое слово `super` . Узнайте больше о Наследовании здесь . |