为什么参数定义方法匿名内部 class 的行内部方法有效?
Why does the line inside method of argument defined method anonymous inner class work?
InterfaceInAbstractClass.java
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("An interface can be implemented within a class");没有打印出来?
对您的实施者进行小调整 class 以调用接口函数
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
InterfaceInAbstractClass.java
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("An interface can be implemented within a class");没有打印出来?
对您的实施者进行小调整 class 以调用接口函数
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