JavaSE 抽象类和接口的特性

目录

抽象类的特性

接口的特性(接口是一种引用类型)


抽象类的特性

1.抽象类不能被实例化(即不能使用new关键字创建引用类型)

JavaSE 抽象类和接口的特性_第1张图片

 2.抽象类中的抽象方法如果被abstract修饰则可以不用写出具体方法执行过程

JavaSE 抽象类和接口的特性_第2张图片 

 3.抽象类也是类,在抽象类中也可以定义普通成员变量和普通成员方法,甚至构造方法

JavaSE 抽象类和接口的特性_第3张图片

 4.抽象方法不能被private修饰(且如果方法未加任何修饰限定符,则默认为public修饰)

JavaSE 抽象类和接口的特性_第4张图片

 5.抽象方法也不能被final和static修饰,因为抽象类一定要被继承,且抽象类继承之后在子类中要对抽象类中所有的抽象方法进行重写

JavaSE 抽象类和接口的特性_第5张图片

 6.抽象类的目的就是为了继承,所以抽象类一定要被继承,且继承之后子类要对抽象类的所有抽象方法进行重写,如果不重写子类也会默认为抽象类,必须用abstract对子类进行修饰

JavaSE 抽象类和接口的特性_第6张图片

此时重写之后编译器就不会报错 

JavaSE 抽象类和接口的特性_第7张图片

 7.抽象类不一定含有抽象方法,但是如包含抽象方法的类一定是抽象类

接口的特性(接口是一种引用类型)

1.接口不能被实例化(即不能使用new关键字来创建引用)

JavaSE 抽象类和接口的特性_第8张图片

2.接口不能单独使用,必须通过类来实现接口中的抽象方法(用关键字implements来实现) 

JavaSE 抽象类和接口的特性_第9张图片

 3.接口中的方法默认为abstract public(即使不写,编译器默认在方法前面加上abstract public),接口中的所有方法都必须是抽象方法,故方法不能有执行过程,且用其他修饰限定符修饰会报错

JavaSE 抽象类和接口的特性_第10张图片

4.当用类来实现接口时,必须对接口中的所有抽象方法进行重写,在重写时必须用public修饰重写的方法 (因为类的修饰限定符要大于等于所实现接口中方法的修饰限定符,接口中默认时public,所以类中只能是public) 

JavaSE 抽象类和接口的特性_第11张图片

5.接口中可以含有变量,但是接口中的变量会被隐式的指定为 public static fifinal 变量

JavaSE 抽象类和接口的特性_第12张图片

 6.接口中不能有静态代码块和构造方法

JavaSE 抽象类和接口的特性_第13张图片

 7.如果类没有实现接口中的所有的抽象方法,则类必须设置为抽象类

希望可以通过这篇博客加强大家对抽象类和接口特性的了解,这样对我们书写代码会有很大帮助,感谢支持!!!

你可能感兴趣的:(JavaSE,java,jvm,开发语言)