Q: Consumer with Polymorphism in interface Finally I solve problem by myself
It turns out that consumers can transform
and Through the interface let my xxx_dialogs and Compulsory use openDialog function.
Data bean start for product, Customer
public class Prod extends MyBean { 
    private String P_NO = "";       
    private setP_NO(String p_no){
        P_NO= p_no;
    }
    private String getP_NO(){
        return P_NO;
    }
}   

public class Cust extends MyBean { 
    private String CUST_NO = "";   
....
}   

public class MyView{
  TextField textFieldP_NO;
  Button btnProd;
  Button btnCust;
  public MyView (){
      //...constructor...
    }
    btnProd.addClickListener(e -> {
        Prod_Dialog p_dlg = new Prod_Dialog();
        //fix before
        //p_dlg.openDialog(p -> textFieldP_NO.setValue(p.getP_NO()));
        //fix after
        p_dlg.openDialog(p -> textFieldP_NO.setValue(((PROD_Dialog.Prod) p).getP_NO()));
    });
    btnCust.addClickListener(e -> {
        Cust_Dialog c_dlg = new Cust_Dialog();
        //fix before
        //c_dlg.openDialog(c -> textFieldP_NO.setValue(c.getCUST_NO()));
        //fix after
        c_dlg.openDialog(c -> textFieldP_NO.setValue(((CUST_Dialog.Cust) c).getCUST_NO()));
    }); 
} 

[Interface] fix parametere Consumer can Polymorphism
public interface BaseDialog {
    //fix before just for prodct. That's bad....
    //public abstract void openDialog(Consumer<Prod> selectionAction);
    
    //fix after that can service any MyBean...
    public abstract void openDialog(Consumer<? extends MyBean> selectionAction);
}

[Dialog] with Prod_Dialog and cust_Dialog thougth clickok method pass Consumer<Prod> or Consumer<Cust>
//fix before
//public class Prod_Dialog {
//fix after 
public class Prod_Dialog implements BaseDialog{
  private Button btnOk;  
  ...
  //fix before
  //public void openDialog(Consumer<Prod> selectionAction) {
  //fix after     
  public void openDialog(Consumer<? extends MyBean> selectionAction) {
      btnOk.addClickListener(e -> {
        //fix before
        // Prod sel_prod = grid.asSingleSelect().getValue();
        // String p_no = sel_prod.getP_NO(); //get user selected p_no
        
        // Prod prod = new Prod();
        // prod.setP_NO(p_no);        
        // selectionAction.accept(prod);
        
        //fix after that is magic point for me, by Consumer Transformation
        clickOK((Consumer<Prod>) selectionAction); 
      }
  }
  public void clickOK(Consumer<Prod> selectionAction) {
    Prod sel_prod = grid.asSingleSelect().getValue();
    String p_no = sel_prod.getP_NO(); //get user selected p_no
    
    Prod prod = new Prod();
    prod.setP_NO(p_no);        
    selectionAction.accept(prod); 
  }
}   

public class Cust_Dialog implements BaseDialog{
    private Button btnOk;  
    ...
    public void openDialog(Consumer<? extends MyBean> selectionAction) {
      btnOk.addClickListener(e -> {
        //fix before
        // Cust sel_cust = grid.asSingleSelect().getValue();
        // String c_no = sel_cust.getCUST_NO(); //get user selected p_no
        
        // Cust cust = new Cust();
        // Cust.setCUST_NO(c_no);        
        // selectionAction.accept(cust); 
        //fix after
        clickOK((Consumer<Cust>) selectionAction); //that is magic point for me, by Consumer Transformation
      }
    }
  
    public void clickOK(Consumer<Cust> selectionAction) {
    Prod sel_cust = grid.asSingleSelect().getValue();
    String c_no = sel_prod.getCUST_NO(); //get user selected p_no
    
    Cust cust = new Cust();
    cust.setCUST_NO(c_no);        
    selectionAction.accept(cust); //that is magic point for me  
    }
}   


A: Your working implementing class code method signature
public void openDialog(Consumer<PROD> selectionAction)

is not identical to the interface signature
public abstract void openDialog(Consumer<? extends MyBean> selectionAction);

Do not write abstract in the interface signature declaration (they are public and abstract by default)!
Arguments to the methods will / must / are - always be identical too!
Implementing class code method signature should be almost and if not , totally identical in the interface.
