简体   繁体   中英

Access a method of a class defined within a method

It seems like PdCar class have been upcast to Car type, and I can't find a way to use methods that are not in Car interface. I'm just curious, is there a way to access readLabel method? Or it's just not possible? Thanks.

interface Car{

     }

public class Parcel5 {

    public Car car(String s){

        class PdCar implements Car {
            private String label;
            private PdCar(String whereTo){
                label = whereTo;
                  }
            public String readLabel(){ return label; }
             }
         return new PdCar(s);
          }

public static void main(String [] args){

    Parcel5 p = new Parcel5();
    Car d =  p.car("toyota");

   }
}

It seems like PdCar class have been upcast to Car type

no.

If you want to access methhod readLabel() you have to declare it in the interface Car .

I can't find a way to use methods that are not in Car interface. I'm just curious, is there a way to access readLabel method? Or it's just not possible? Thanks.

interface Car{
    String readLabel()
}

public class Parcel5 {

    public Car car(String s){

        class PdCar implements Car {
            private String label;
            private PdCar(String whereTo){
                label = whereTo;
                  }
            public String readLabel(){ return label; }
             }
         return new PdCar(s);
          }

public static void main(String [] args){

    Parcel5 p = new Parcel5();
    Car d =  p.car("toyota");
    System.out.println(d.readLabel());
   }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM