技术blog03 by 八戒

本文提供两道关于Java内部类及接口实现的面试题解析。第一题涉及接口与静态方法配合匿名内部类返回接口实例;第二题展示如何巧妙利用匿名内部类达到在if-else结构中输出两个字符串的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天来一发重量级的,保证大家学会后感觉自己瞬间高大上了。(友情提示:考点内部类)

(面试题)
1.interface Inter {
                public abstract void show();
}
class Outer{
              //补全代码
}
class Test{
                public static void main(String[] args){
                             Outer.method().show();//输出"我爱学编程"
                }
}
2.public class Test{
             public static void main(String[] args){
                         if(......){      //括号中填写内容使控制台输出hello world
                                     System.out.print("hello");
                         }else{
                                    System.out.println("world");
                         }
             }
}
以下是我个人的观点仅供参考,而我个人更希望能和大家多多讨论,共同进步:
第一题:
看到这个填代码的题,首先我们应该从主函数的main方法中寻找突破口,看到Outer.method()说明了method是一个
静态的方法,(因为可以用类名直接调用),其次是又.了一个show方法,因为show方法是Inter接口的一个抽象方法,
要想使用就先要实例化,所以不难看出Outer.method()返回的是一个Inter接口对象,并且还重写了Inter接口中的show
方法,所以答案也就差不多出来了.
第二题:
看到这个题你首先想到的应该是肯定要在main方法shang做文章,因为按照常理来说if语句和else语句中只能执行一个,
而要执行两个的话我想到的只有一个方法,那就是用匿名内部类传参先执行一个判断,然后再通过主函数的main在执行另一个
判断,所以答案也就差不多出来了.


答案见下方

第一题:
public static Inter method(){
     return new Inter(){
        public void show(){
              System.out.println("我爱学编程");
}
}
}
第二题:
这个我就只写括号里面的了
args.length==1||new Test(){
{
Test.main(new String[]{"1"});
}
}.equals("")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值