Latest web development tutorials

наследования Java

Наследование является краеугольным камнем объектно-ориентированной технологии программирования Java, так как она позволяет создавать классы иерархических уровней. Наследование можно понимать как объект, чтобы получить свойства от другого объекта процесса.

Если родительский класс является класс А класс В, класс В и класса С является родительский класс, и мы также называем C является подклассом A, класс C от класса A наследуется. В Java, наследование класса одиночное наследование, то есть подкласс может иметь только один родительский класс

Два наиболее часто используемых ключевых слов, наследования распространяется и инвентарь.

И использование ключевых слов и определить, является ли объект одним объектом IS-A (а) отношения.

При использовании этих двух ключевых слов, мы можем достичь объекта, чтобы получить свойства другого объекта.

Все классы Java наследуются классом java.lang.Object, поэтому класс Object является предком всех классов, а кроме того объекта, все классы должны иметь родительский класс.

По чрезмерно расширяет ключевые слова могут объявить класс наследуется от другого класса, общая форма выглядит следующим образом:

// A.java
public class A {
    private int i;
    protected int j;
 
    public void func() {
 
    }
}
 
// B.java
public class B extends A {
}

Приведенные выше фрагмент кода показывает, B наследует от A, B является подклассом А. А А подкласс объекта, может не быть явно объявлены.

Как подкласс экземпляра B из A имеет все переменные-члены, но и для членов частной переменной В, но не имеют доступа, что гарантирует герметизация в.


IS-Отношения

Это IS-A: Объект является классификация другой объект.

Здесь ключевое слово расширяет наследование реализации.

public class Animal{
}

public class Mammal extends Animal{
}

public class Reptile extends Animal{
}

public class Dog extends Mammal{
}

Исходя из приведенного выше примера, то справедливо следующее утверждение:

  • Класс Animal является класс класс Млекопитающее родителя.
  • Класс Animal является родительский класс класс рептилии.
  • Млекопитающее и класс Рептилия является подклассом класса Animal.
  • Класс Собака является как подкласс класса млекопитающее является подклассом класса Animal.

Анализ стандарта IS-отношения, в приведенном выше примере, следующим образом:

  • Млекопитающее IS-A Animal
  • Рептилия IS-A Animal
  • Собака-млекопитающему

Поэтому: Собака IS-A Animal

Используя ключевое слово распространяется, подклассы наследуют все методы и свойства родительского класса, но не могут использовать частные (частные) методы и свойства.

Мы используем оператор может определить, является экземпляром млекопитающее-A Animal

примеров

public class Dog extends Mammal{

   public static void main(String args[]){

      Animal a = new Animal();
      Mammal m = new Mammal();
      Dog d = new Dog();

      System.out.println(m instanceof Animal);
      System.out.println(d instanceof Mammal);
      System.out.println(d instanceof Animal);
   }
}

Приведенные выше примеры скомпилированные получены следующие результаты:

true
true
true

После введения распространяется ключевое слово, мы рассмотрим , как использовать орудия ключевое слово , чтобы указать-А отношения.

Реализует ключевое слово в случае интерфейса наследования классов, эта ситуация не может использовать ключевое слово распространяется.

примеров

public interface Animal {}

public class Mammal implements Animal{
}

public class Dog extends Mammal{
}

Ключевое слово является экземпляром

Вы можете использовать оператор InstanceOf , чтобы проверить , является ли объект млекопитающим и собака является экземпляром класса Animal.

interface Animal{}

class Mammal implements Animal{}

public class Dog extends Mammal{
   public static void main(String args[]){

      Mammal m = new Mammal();
      Dog d = new Dog();

      System.out.println(m instanceof Animal);
      System.out.println(d instanceof Mammal);
      System.out.println(d instanceof Animal);
   }
} 

Приведенные выше примеры скомпилированные получены следующие результаты:

true
true
true

HAS-A отношения

HAS-A принадлежности от имени класса и его членов. Это помогает повторное использование кода и уменьшить количество ошибок кода.

пример

public class Vehicle{}
public class Speed{}
public class Van extends Vehicle{
	private Speed sp;
} 

Ван класс и класс Скорость HAS-A отношения (Van имеет скорость), так что вы не будете иметь весь код будет вставлен в класс Ван скорости в классе, и класс скорости могут быть повторно использованы в нескольких приложениях.

В объектно-ориентированных функций, пользователю не нужно беспокоиться о том, как внутренние классы.

детали реализации класса Ван скрыты от пользователя, поэтому пользователям необходимо только знать, как вызвать Ван класс, чтобы завершить определенную функцию, без необходимости знать Ван класс должен делать это самостоятельно или вызвать другой класс, чтобы сделать работу.

Java поддерживает только одиночное наследование, а это означает, что класс не может наследовать несколько классов.

Следующая практика не является законным:

public class extends Animal, Mammal{} 

Java поддерживает только одиночное наследование (наследование и абстрактный базовый класс), но мы можем использовать интерфейс для реализации (множественного наследования интерфейсов для достижения), структура сценария, такие как:

public class Apple extends Fruit implements Fruit1, Fruit2{}

Как правило, мы наследуем базовый класс и абстрактный класс с расширяет ключевое слово реализует интерфейс с орудиями класса ключевых слов наследования.