面向对象(十四)

面向对象(十四)

抽象类

抽象类就是用abstract关键字修饰的类。

  1. 抽象类无法new出实例,只能靠子类去实现
  2. 抽象类中可以创建普通的方法
  3. 抽象方法(用abstract修饰的方法)只能存在于抽象类中

抽象类 Action

package com.oop.demo06;

public abstract class Action {

    //抽象方法无法创建方法体,需要子类实现
    public abstract void doSomething();

    //抽象类中也可以创建普通方法
    public void changeSomething() {
        System.out.println("Change Something.");
    }

}

继承Action的子类Running

package com.oop.demo06;

public class Running extends Action {

    //继承抽象类必须要实现抽象类中的抽象方法
    @Override
    public void doSomething() {
        System.out.println("Do Something.");
    }
}

接口

接口与抽象类有相似之处,下面有两个接口Traffic和Sleep, 和一个类Flight

Traffic

package com.oop.demo07;

public interface Traffic {
    void goOut();
}

Sleep

package com.oop.demo07;

public interface Sleep {
    String sleepWhere(String where);
}

Flight

package com.oop.demo07;

public class Flight implements Traffic, Sleep{
    @Override
    public void goOut() {
        System.out.println("乘坐飞机出行.");
    }

    @Override
    public String sleepWhere(String where) {
        return where;
    }
}

可以看出,接口有以下的一些特点:

  1. 接口定义的是一种约束,只定义方法的参数和返回,不定义方法体(方法体由其他同事实现)
  2. 接口中的方法默认带有 public abstract关键字修饰,可以不自行添加
  3. 接口不能被实例化,接口中也没有构造方法
  4. 可以使用implements实现多个接口,如上面实现了Traffic和Sleep两个接口
  5. 实现接口必须要重写接口中定义的方法
posted @ 2021-02-16 15:59  LucaZ  阅读(26)  评论(0编辑  收藏  举报