抽象方法和接口

277 阅读2分钟

抽象方法和抽象类

抽象方法

  1. 使用abstract修饰的方法,没有方法体,只有声明。
  2. 定义的是一种“规范”,就是告诉子类必须要给抽象方法提供具体的实现。

抽象类

  1. 包含抽象方法的类就是抽象类。
  2. 通过抽象类,我们就可以做到严格限制子类的设计,使子类之间更加通用

抽象类的使用要点 1.有抽象方法的类只能定义成抽象类 2.抽象类不能实例化,即不能用new来实例化抽象类 3.抽象类可以包含属性、方法、构造方法。但是构造方法不能用来new实例,只能用来被子类调用。 4.抽象类只能用来被继承 5.抽象方法必须被子类实现

package com.itbaizhan.abstractClass;

public abstact class Animal {     //只有在包含抽象方法的类下
    int age;//可以包含属性
    public abstract void rest () ;     //不提供实现,没有方法体要加absteact,这里意思为如果为animal子类,必须实现rest方法

    public  void run (){
        System.out.println("Animal.run");//可以包含普通方法
    }

}

Class Dog extends Aninal{//子类继承父类,必须要实现抽象方法

    …………

}

接口 接口就是一组规范(就像我们人间的法律一样),所以实现类都要遵守

注意事项:接口中属性和普通的方法都不能有

#如何定义和使用接口#

声明格式

[访问修饰符]interface 接口名 [extends(继承) 父接口 1,父接口2……]{
        常量定义:
        方法定义:


}

定义接口的详细说明 【】访问修饰符:只能是public或默认

【】和类名采用相同命名机制

【】extends:接口可以多继承

【】常量:接口中的属性只能是常量,总是 public static final 修饰,不写也是

【】方法:接口中的方法只能是public,static,省略的话,也是public,abstract

接口中interface的作用:

是实现Java三大特性封装,继承,多态三大支柱的重要支柱之一,interface关键字,用于定义接口抽象,本质上是定义类型,定义类所具有的能力接口优先于抽象类

要点

  • 【】子类通过implements来实现接口的规范。
  • 【】接口不能创建实例,但是可用于声明引用变量类型。
  • 【】一个类实现了接口,必须实现接口中所有的方法,并且这些方法只能是publuc的
  • 【】jdk1.8(不含8)之前,接口中只能包含静态常量,抽象方法,不能有普通属性、构造方法,普通方法。
  • 【】JDK1.8(含8)后,接口中包含普通的静态方法、默认方法。
package com.itbaizhan.testInterface;

//飞行接口
public interface Volant {
    /public static final int Fly-HIGHT = 100;
    public abstract void fly();

}
//善良接口
interface Honest{
    void helpOther();
   

}
class GoodMan implements Honest{
    
    @Override
    public void helpother(){
        System.out.println("扶老奶奶过马路");
    }
}