欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

java中的抽象类和接口

时间:2023-08-06

什么是抽象类?
将类和类之间的共同特征提取出来形成抽象类,抽象类和抽象类之间还可以进一步抽象。抽象类无法实例化。虽然抽象类不能被实例化,但是会有构造方法,供子类使用。

什么是抽象方法?
抽象方法表示没有实现的方法,即没有方法体的方法。有抽象方法的类一定是抽象类,但抽象类不一定有抽象方法。所以继承抽象类的非抽象类必须对抽象类中的抽象方法进行重写。

判断:java中凡是没有方法体的方法都是抽象方法(×)
Object类中有很多方法都没有方法体,例如:
public native int hashCode();
这个方法底层调用了c++写的动态链接库程序。native表示调用JVM本地程序。

public class AbstractTest01 { public static void main(String[] args) {// 面向抽象编程 Animal a = new Bird(); //向上转型// 编译和运行两种状态:编译通过的是Animal中的display方法,运行执行的是Bird中的display方法// 编译不能通过子类中独有的方法,编译通过的对象a是属于Animal类型,但运行时产生的是Bird类型对象 a.display(); }}abstract class Animal { int a;// 可以有构造方法 public Animal () { }// 抽象方法 public abstract void display();// 非抽象方法 public void move() { }}class Bird extends Animal{// 对继承过来的抽象方法进行重写 public void display() { System.out.println("display"); } public void withdraw() { System.out.println("withdraw"); }}

4.什么是接口(interface)?

接口是一种特殊的抽象类(完全抽象),编译之后生成的也是class文件。接口支持多继承,但java中的类(包括抽象类)不支持多继承。接口中只能有常量和抽象方法。接口中定义常量时可以省略修饰符“public static final”。接口中的定义抽象方法时可以省略修饰符“pubic abstract”。接口中的所有元素都是public的。类与类之间叫继承,接口和类之间叫实现,关键字“implement”。实现接口时,必须将其所有的抽象方法进行重写。一个类可以同时实现多个接口。接口之间没有继承关系进行向下强制类型转换,编译不会报错,但是运行时会出现ClassCastException异常。接口和继承可以同时出现,先写继承,后写实现。接口中没有构造方法。

5.接口在开发中的作用?

接口的作用类似于多态,降低程序耦合度,提高程序扩展力,符合ocp开发原则。不要面向具体编程。任何一个接口都有调用者和实现者,接口可以将调用者和实现者解耦合。调用者面向接口调用,实现者面向接口编写实现。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。