java中的抽象类和接口

java中的抽象类和接口,第1张

java中的抽象类和接口

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

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

    判断: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开发原则。不要面向具体编程。任何一个接口都有调用者和实现者,接口可以将调用者和实现者解耦合。调用者面向接口调用,实现者面向接口编写实现。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5722383.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存