网站建设与管理学什么seo网站搜索优化
文章目录
- 1. java访问修饰符
 - 2. 抽象类和接口
 - 2.1 抽象类
 - 2.2 接口
 - 2.3 抽象类和接口的区别
 
本人今年参加了很多面试,也有幸拿到了一些大厂的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 抽象类和接口的区别

 
 本节完!
