牛客网-JAVA(错题集)-1

发布时间:2024年01月10日
1

Java的抽象类和接口不可以进行实例化

2

知识点:

1、不论如何 finally里面的代码是一定会执行的
2、finally里面的代码块比return早执行
3、多个return是按顺序执行的,只执行一次


public abstract class Test {
    public static void main(String[] args) {
        System.out.println(beforeFinally()); //1
    }
    
    public static int beforeFinally(){
        int a = 0;
        try{
            a = 1;
            return a;
        }finally{
            a = 2;
        }
    }
}

先执行a=2
然后a=1覆盖了a=2 此时a=1 try里面有return 所以现将a=1加入到临时栈中
然后先不return,先执行finally里面的a=2,由于finally里面没有return所以a=2不存入临时栈中
执行完毕后再return 返回的是临时栈中的a=1

public abstract class Test {
    public static void main(String[] args) {
        System.out.println(beforeFinally()); //2
    }
    
    public static int beforeFinally(){
        int a = 0;
        try{
            a = 1;
            return a;
        }finally{
            a = 2;
            return a;
        }
    }
}
先a=1存入临时栈中,再执行finally
a=2,finally里面也有一个return ,这时会把a=2更新到临时栈中
参考:
作者:贱贱的梦想
链接:https://www.nowcoder.com/exam/test/77051414/submission?examPageSource=Intelligent&pid=55063941&testCallback=https%3A%2F%2Fwww.nowcoder.com%2Fexam%2Fintelligent%3FquestionJobId%3D10%26tagId%3D21003&testclass=%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91
来源:牛客网
3 对的好题

4

重写:三同一大一小(方法名、返回值类型、形参相同;访问权限>=重写前;抛出异常<=重写前)
接口:
1、接口中的方法都是隐式抽象的,会被隐式指定为 public? abstract(只能是public abstract,其他修饰符都会报错)
2、接口中的变量会被隐式指定为 public static final

5?
6

1.抽象类可以有构造方法,接口中不能有构造方法。?
2.抽象类中可以有普通成员变量,接口中没有普通成员变量?
3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。?
4. 抽象类中的抽象方法的访问类型可以是public,protected和(默认类型,虽然? eclipse下不报错,但应该也不行),但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。? 5. 抽象类中可以包含静态方法,接口中不能包含静态方法 (因为静态方法不能被重写


6. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。?
7. 一个类可以实现多个接口,但只能继承一个抽象类?


?
文章来源:https://blog.csdn.net/weixin_47059164/article/details/135506947
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。