java中的抽象类和接口

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

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

  3. 判断: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)?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值