Java 为什么参数定义方法匿名内部类的行内部方法可以工作?
InterfaceInAbstractClass.javaJava 为什么参数定义方法匿名内部类的行内部方法可以工作?,java,inner-classes,anonymous-class,anonymous-methods,anonymous-inner-class,Java,Inner Classes,Anonymous Class,Anonymous Methods,Anonymous Inner Class,InterfaceInAbstractClass.java public abstract class InterfaceInAbstractClass { public interface Inter{ void interface_method(); } public void interface_abstract_class_method(Inter in){ } } InterfaceInAbstractClassImple
public abstract class InterfaceInAbstractClass {
public interface Inter{
void interface_method();
}
public void interface_abstract_class_method(Inter in){
}
}
InterfaceInAbstractClassImplementer.java
public class InterfaceInAbstractClassImplementer extends InterfaceInAbstractClass{
public static void main(String[] args){
// InterfaceInAbstractClass.Inter abcd = new InterfaceInAbstractClass.Inter() {
//
// @Override
// public void interface_method() {
// // TODO Auto-generated method stub
// System.out.println("An interface can be implemented ");
// }
// };
System.out.println("An interface can be implemented ");
InterfaceInAbstractClassImplementer abc = new InterfaceInAbstractClassImplementer();
abc.interface_abstract_class_method(new Inter() {
@Override
public void interface_method() {
// TODO Auto-generated method stub
System.out.println("An interface can be implemented within a class");
}
});
}
}
为什么System.out.println(“接口可以在类中实现”);没有打印?对实现者类进行一个小调整,以调用接口函数
public class InterfaceInAbstractClassImplementer extends InterfaceInAbstractClass{
public static void main(String[] args){
System.out.println("An interface can be implemented ");
InterfaceInAbstractClassImplementer abc = new InterfaceInAbstractClassImplementer();
Inter inter = new Inter() {
@Override
public void interface_method() {
// TODO Auto-generated method stub
System.out.println("An interface can be implemented within a class");
}
};
abc.interface_abstract_class_method(inter);
}
public void interface_abstract_class_method(Inter inter) {
inter.interface_method();
}
}
输出:
An interface can be implemented
An interface can be implemented within a class
乍一看,你永远不会调用它。因为它不会被调用。你需要调用那个方法。现在您只是定义方法,而不是从任何地方调用它。