java【抽象类、抽象方法、接口】

抽象类:

Java中可以定义没有方法体的方法,该方法由其子类来具体实现。

该没有方法体的方法我们称为抽象方法,含抽象方法的类我们称为抽象类。

特点:

  1. 定义中含抽象方法的类我们称为抽象类;
  2. 抽象类用abstract来修饰;
  3. 抽象类代表一种抽象的对象类型;
  4. 抽象类不能实例化;
  5. 抽象类中可以有具体的方法,可以没有抽象方法;
/********抽象类*******/
public abstract class  A{

    public void A(){

    }
    public abstract  void B(){

    }
}
/*********含抽象方法的抽象类*******/
public abstract class  B{

    public void A(){

    }
    
}
/*********含抽象方法的抽象类*******/
public abstract class  A{

    public abstract  void B(){

    }
}

抽象方法:

特点:

  1. 只有方法头没有方法体的方法我们称为抽象方法;
  2. 抽象方法用abstract来修饰;
  3. 抽象方法代表一种不确定的操作或行为;

接口(interfance):

特点:

  1. 接口只能存放静态常量和抽象方法;
  2. Java接口是对功能的拓展;
  3. 通过实现接口,Java类可以实现多实现;
  4. 一个类可以同时继承(extends)一个父类,并且实现(implements)多个接口
  5. 接口与接口之间可以通过使用extends来产生继承关系;
public class InterfanceDemo{

    Public static void main(String []args){
      Person p = new Person();
      Child child  =new Child ();
      Dog dog=new Dog ();
      p.feed(child);
      p.feed(dog);
    }
}

class Person{
    public void feed(Child child ){
        child.eat();
    }

    public void feed(Dog dog){
        dog.eat();
    }
}

class Child{
    public void eat(){
        System.out.printf("吃米饭");
    }
}
class Dog{
    public void eat(){
        System.out.printf("吃骨头");
    }
}



/*
*与上面代码对比
*/

public class InterfanceDemo{

    Public static void main(String []args){
      Person p = new Person();
      Child child  =new Child ();
      Dog dog=new Dog ();
      p.feed(child);
      p.feed(dog);
    }
}

class Person{
    //接口的变量可以引用其实现类的对象
    //接口实现了多态
    public void feed(IAbility ability){
        ability.eat(); //动态绑定
    }
}

class Child implements IAbility{
    public void eat(){
        System.out.printf("吃米饭");
    }
}
class Dog implements IAbility{
    public void eat(){
        System.out.printf("吃骨头");
    }
}


interfance IAbility{
   //接口中只能放公有的静态常量和抽象方法。public static fianl 可以省略
   void eat();

}

猜你喜欢

转载自blog.csdn.net/qq_40788793/article/details/84672723