天天看点

普通类,抽象类,接口,内部类

普通类和抽象类区别

1.抽象类和普通类都可以被继承,也可以发生向上转型,动态绑定;

2.抽象类不能被实例化

3.抽象类就是用来继承的

4.抽象类中可以有普通方法

5.抽象类不能被private修饰

6.如果一个抽象类继承了一个抽象类,可以不重写抽象方法,但是如果这个抽象类被一个普通类继承,一定要在普通类中重写抽象方法

7.抽象类不能被final修饰

抽象类和接口的区别

1.抽象类是功能不完整的类,而接口是抽象方法声明和静态不能被修改的集合,从某种意义上将接口是特殊的抽象类

2.接口使用关键字interface来修饰,接口方法默认public abstract;

3.抽象类不能被实例化,接口也不能被实例化;

4.抽象类和接口的直接关系是implements,此时接口的所有方法被重写

5.一个类可以实现多个接口,但只能继承一个类

6.抽象类和接口都可以实现向上转型,动态绑定

7.类和接口是implements,而接口与接口之间是extends;

内部类

1.静态内部类:

相当于外部类的静态成员,隶属于外部类,使用static修饰,不能访问外部非静态方法,使用时相当于一个独立的静态类。

2.实例内部类:

相当于外部类的普通方法,隶属于于外部类的具体对象,当定义时,要先创建外部类的实例,在创建内部类的实例。

3.局部内部类:

定义在方法的方法体中,只是短暂使用,只能使用final和abstract修饰,只能访问final修饰的局部变量。

4.匿名内部类:

定义在方法体中,没有具体的名字,具有较大的灵活性。