2015-02-26 5 views
0
`In the below program ,what is the difference between the 2 Object Creation 
     which i created and what is the advantage of 2nd one` 
  1. пункт СписокВ программе ниже, чем разница между созданием 2 объекта, который я создал и то, что является преимуществом 2 одной

    class Overload { 
    
        void sample() { 
         System.out.print("Sample "); 
        } 
    
        void demo(int a) { 
         System.out.print("parent a: " + a); 
        } 
    
        void demo(int a, int b) { 
         System.out.print("parent a and b: " + a + "," + b); 
        } 
    
        double demo(double a) { 
         System.out.print("parent double a: " + a); 
         return a * a; 
        } 
    } 
    
    class Overload_1 extends Overload { 
    
        void demo(int a) { 
         System.out.print("Child a: " + a); 
        } 
    
        void demo(int a, int b) { 
         System.out.print(" Child a and b: " + a + "," + b); 
        } 
    
        double demo(double a) { 
         System.out.print("Child double a: " + a); 
         return a * a; 
        } 
    } 
    
    class Change_Reference { 
        public static void main(String args[]) { 
         Overload_1 Obj = new Overload_1(); //What is the of this Object 
         Overload Ob = new Overload_1();//What is the use of this Object 
         double result; 
         Obj.demo(10); 
         Obj.demo(10, 20); 
         result = Obj.demo(5.5); 
         System.out.print("O/P : " + result); 
         Obj.sample(); 
        } 
    } 
    
+0

1. Не могли бы вы исправить форматирование? 2. Вы спрашиваете, в чем разница между расширением другого класса и наличием класса без наследования? –

+0

Мое сомнение заключается в том, что 1. использование класса child для объекта класса патентов [Overload Ob = Overload_1();] – Mageshwaran

ответ

0

наследования является « является «отношением». Давайте использовать пример собака/животное:

public class Animal { 
    public void run() { 
     // ... 
    } 
} 

public class Dog extends Animal { 
    public void bark() { 
     // ... 
    } 
} 

Собака это животное, так что они справедливы:

Animal animal = new Dog(); 
Dog dog = new Dog(); 

Таким образом, все эти вызовы справедливы:

animal.run(); 
dog.run(); 
dog.bark(); 

Однако тип animal есть Animal, который не имеет bark() способ. Собака - это животное, но вы называете это животным, а не собакой, поэтому вы не знаете, что она может лаять. Например, animal может быть кошкой. Это означает, что этот призыв будет давать ошибку компиляции:

animal.bark(); // compile-time error, no such method in class Animal 

Таким образом, в вашем примере, Obj и Ob являются только ссылки на некоторые объекты. Оба объекта создаются точно так же, единственное различие заключается в том, как вы относитесь к ним.

Я рекомендую делать некоторое чтение о наследовании, вы можете начать here

+0

Спасибо :) Я получу его из ваших ответов – Mageshwaran