2016-12-15 3 views
-4

это универсальный классОбщий класс в Java

public class Samplevehicle <t > 
{ 

    public void type(t obj) 
    { 

     if(obj instanceof Vechicle) 
     { 

      System.out.println("BIke or truck"); 
     } 
     else if(obj instanceof Bike) 
     { 

      System.out.println("BIKE"); 
     } 
     else if(obj instanceof Truck) 
     { 
      System.out.println("Truck"); 
     } 
    } 

} 

// суперкласс

public class Vechicle { 


    public static void main(String[] args) { 

     System.out.println("TYPES"); 
     Samplevehicle<Vechicle>sv=new Samplevehicle<Vechicle>(); 

     sv.type(new Vechicle()); 

     Samplevehicle<Truck>t=new Samplevehicle<Truck>(); 
     t.type(new Truck()); 

     Samplevehicle<Bike>b=new Samplevehicle<Bike>(); 
     b.type(new Bike(1)); 


    } 

} 

// подкласс

public class Bike extends Vechicle 

{ 
    public Bike(int id) { 

    } 
} 

// второй subcl задница

public class Truck extends Vechicle 
{ 


    *//truck extending vechicle* 

} 

// Даже IM передавая объект подкласса его с указанием суперкласса объекта

+5

Вы хотите задать реальный и конкретный и подотчетный вопрос –

+0

Что вы имеете в виду под «общим»? –

ответ

1

Удалить else S:

if(obj instanceof Vechicle) 
{ 

    System.out.println("BIke or truck"); 
} 
if(obj instanceof Bike) 
{ 

    System.out.println("BIKE"); 
} 
if(obj instanceof Truck) 
{ 
    System.out.println("Truck"); 
} 

Как она стоит, вы проверяете, если obj is не a instanceof Vehicle, но является a instanceof Bike, что невозможно.

0

Ваш вопрос непонятен. Я чувствую, что вы пытаетесь распечатать, принадлежит ли объект определенному классу (или). Если это так, используйте getClass(), чем instanceof (объект является экземпляром того же класса и всех других суперклассов и интерфейсов, которые он реализует). Попробуйте использовать getClass() для получения конкретных результатов.

public void type(t obj) 
     { 

      if(obj.getClass().equals(Vechicle.class)) 
      { 

       System.out.println("BIke or truck"); 
      } 
      else if(obj.getClass().equals(Bike.class)) 
      { 

       System.out.println("BIKE"); 
      } 
      else if(obj.getClass().equals(Truck.class)) 
      { 
       System.out.println("Truck"); 
      } 
     } 
Смежные вопросы