Java学习笔记-接口类学习

接口类实际上就是一个抽象类!

接口、抽象类与具体类三者之间的区别:

1、抽象类中可以有抽象方法,也可以有实例方法。而接口中所有的方法都是公开的抽象的方法。

2、具体类和抽象类之间通过extends完成继承。而具体类和接口之间通过implements完成方法实现,不叫作继承。

3、抽象类中可以有实例属性。而接口中所有的属性都是公开的静态的常量。

4、抽象类中可以有构造方法。而接口中没有构造方法。

5、在内存中有抽象类的对象。而没有接口的对象。

6、一个具体类只能继承一个抽象类。而一个具体类可以实现多个接口。

7、具体类和抽象类之间只能是单继承。接口和接口之间也可以继承,可以多继承。

8、抽象类可以继承一个类(可以是抽象类,也可以是具体类),接口不能继承类。


不同的表现形式:

具体类

public class Car{
    private int max_speed;
    public void setMaxSpeed(int max_speed)
   {
         this.max_speed=max_speed;
   }
}

public class QQ extends Car{
  
}

抽象类

public abstract class Car{
   private int max_speed;
   public void setMaxSpeed(int speed)
   {
     this.max_speed=speed;
   }
   public abstract setMaxStopSpeed(int speed);
}

public class QQ extends Car{
   private String name;
   public setMaxStopSpeed(int speed)
  {
     ………………
     ………………
  }
}

接口类

public interface Car{
  public static final int max_speed; 
  public abstract void setMaxSpeed(int max_speed);
}
public class QQ implements Car{
  public void setMaxSpeed(int max_speed)
  {
     …………………………
     …………………………
  }
}


接口和抽象类同样不能new 实例化对象,抽象类通过继承子类可以自动在内存中创建对象,但接口在子类实现后内存中没有对象,抽象类、接口可以定义引用。

接口在哪里呢???

1、接口可以声明变量

2、接口可以声明方法的参数

3、接口可以声明方法的返回值类型

4、可以强制类型转换

综上:实际接口就是一种数据类型!


抽象类、接口统称为抽象层

两者如何使用?

1、当抽象层中没有实例属性和实例方法,只有抽象方法时,要做成接口(原因:抽象类在子类创建对象时会自动在内存中创建抽象对象,消耗内存)

2、当抽象层中既有实例属性或者实例方法,又有抽象方法时,要做成抽象类!



如果一个类要实现一个接口,则必须要实现接口中所有的抽象方法,该类可以是抽象类,也可以是具体类。

如果一个类继承抽象类,且只实现了抽象类中的部分抽象方法,则该类必定为抽象类。



一个抽象类实现一个接口,可以不实现其中的部分方法或者全部抽象方法,在抽象类的子类中实现

Book.java

public interface Book {
	public abstract void readBooks();
}
文学.java

public abstract class 文学 implements Book {

}
语文.java

public class 语文 extends 文学 {

	public void readBooks() {

	}

}





  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值