[Java、Android面试]_12_java访问修饰符、抽象类和接口

欢迎查看合集:
Java、Android面试高频系列文章合集

本人今年参加了很多面试,也有幸拿到了一些大厂的offer,整理了众多面试资料,后续还会分享众多面试资料。
整理成了面试系列,由于时间有限,每天整理一点,后续会陆续分享出来,感兴趣的朋友可关注+收藏

1. java访问修饰符

在这里插入图片描述

2. 抽象类和接口

2.1 抽象类

1.public abstract class Animal {  
2.    private int weight = 0;  
3.  
4.    public void setWeight(int weight) {  
5.        this.weight = weight;  
6.    }  
7.  
8.    public int getWeight() {  
9.        return weight;  
10.    }  
11.  
12.    static {  
13.        System.out.println("static初始化块");  
14.    }  
15.  
16.    {  
17.        System.out.println("初始化块");  
18.    }  
19.  
20.    public Animal(){  
21.        System.out.println("Animal的午参构造器");  
22.    }  
23.  
24.    public Animal(int weight) {  
25.        this.weight = weight;  
26.        System.out.println("Animal 的有参构造器");  
27.    }  
28.  
29.    public void sleep(){  
30.        System.out.println("休息一下");  
31.    }  
32.    public static void StaticMethod(){
33.    	System.out.println(“静态方法”);
34.    }
35.    public abstract void running();  
36.  
37.    public abstract String say(String str);  
38.      
39.    //那就是虽然外部抽象类不能用Static修饰,但内部的抽象类却可以使用static声明  
40.    static abstract class B{  
41.        public abstract void sanMethod();  
42.    }  
43.}

特点:
1)抽象类和抽象方法都必须用abstract来修饰,抽象方法不能有实体;
2)抽象类有构造器,但不能被实例化,只能当成父类来被继承;
3)抽象类可以包含成员变量、抽象方法以及普通方法、构造器、初始化块、内部类5大块;
4)抽象类的不一定包含抽象方法,但是抽象方法的类必定是抽象类;
5)final不能修饰抽象类和抽象方法,因为要被继承;
6)private不能修饰抽象类和抽象方法,因为需要被子类继承和重写;
7)Static不能修饰抽象方法,因为静态类可以通过方法名直接调用,但抽象方法没有方法体,所以使用static修饰没有意义;虽然外部抽象类不能用Static修饰,但内部的抽象类却可以使用static声明,如:

1.//定义一个抽象类A  
2.abstract class A{  
3.   //定义一个内部抽象类B  
4.    static abstract class B{  //static定义的内部类属于外部类  
5.        public abstract void saoMethod();  
6.    }  
7.}  
8.  
9.class C extends A.B{  
10.  
11.    public void saoMethod(){  
12.        System.out.println("======saoMethod方法执行了======");  
13.    }  
14.}  
15.public class StaticDemo {  
16.  
17.    public static void main(String[] args) {  
18.        A.B ab = new C();//向上转型  
19.        ab.saoMethod();  
20.    }  
21.  
22.} 

当使用static声明的内部抽象类相当于一个外部抽象类,继承的时候使用“外部类.内部类”的形式表示类名称。这种骚操作属实是稳中带皮。

2.2 接口

接口中的所有方法都是抽象的,接口的方法默认为public abstract类型,接口中的成员变量类型默认为public static final。

1.public interface InferfaceTest extends FatherInterface{  
2.    int a = 0;      // 成员变量类型默认为public static final  
3.    void eat();     // 接口中的方法定义默认为public abstract类型  
4.    void travel();  // 接口中的方法定义默认为public abstract类型  
5.}

2.3 抽象类和接口的区别

在这里插入图片描述
在这里插入图片描述
本节完!

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值