【Java系列】抽象类和接口

一、抽象类

抽象类的概念:用abstract修饰的类称为抽象类,用abstract 修饰的成员方法称为抽象方法。

完整的类有方法并且都已经实现,抽象类就是那些不完整的类,有部分方法没有方法体(没有实现)

1.抽象类的创建和使用
//创建一个抽象类
public abstract class Shape {
	int area;//面积
    public abstract void calArea(); //计算面积方法(没有实现)
}
//继承自Shape抽象类
public class Rectangle extends Shape{
	int width;  //宽
	int length; //长
		
	public Rectangle(int length, int width) {
		this.length = length;
		this.width = width;
	}	
	public void calArea() {//必须把这个抽象方法给实现了
		System.out.println(this.length * this.width);
	}
	public static void main(String[] args) {
		Rectangle rect = new Rectangle(10,5);
		rect.calArea();	
	}
}
  • 子类继承抽象类就必须实现抽象类的所有方法要不就被定义为另一个abstract
  • 在抽象类中,非抽象方法可以调用抽象方法。
  • abstract不能与final并列修饰同一个类(产生逻辑矛盾);

二、接口

接口的两种含义:
可以被引用调用的方法(public方法或同包中的protected方法或默认方法);
另一种是同“类”概念地位相当的专有概念interface, interface是方法说明的集合。

抽象类的极致,所有方法都没有实现,那么这个类被称为接口

1.接口的创建和使用
//创建一个洗衣机的接口
public interface  Washer {
    public static final int ON = 1 ;
    public static final int OFF = 0 ;
    abstract void startUp();     //启动  
    abstract void letWaterIn();  //进水
    abstract void washClothes(); //洗衣
    abstract void letWaterOut(); //排水
    abstract void stop();        //停止
}
//实现这些接口
class RoseBrand implements Washer{
    public  void startUp(){ System.out.println("startUp");}
    public  void letWaterIn(){System.out.println("letWaterIn");}
    public  void washClothes(){System.out.println("washClothes");}
    public  void letWaterOut(){System.out.println("letWaterOut");}
    public  void stop(){System.out.println("stop");}
    public  void dehydrate(){System.out.println("dehydrate ");}//脱水
}
//使用
public class Consumer {
  public static void main(String args[]){
      //接口声明引用实现接口的RoseBrand类的对象。
      Washer  w = new RoseBrand();
      w.startUp();
      w.letWaterIn();
      w.washClothes();
      w.letWaterOut();
      w.stop();
      //w.dehydrate ();当通过接口调用玫瑰洗衣机类独有的,  
                     //接口未定义的功能方法,编译会报错。
  }  
}
  • 继承和实现是同时的,可以继承一个类实现很多接口implements.
  • 接口可以继承接口
  • 接口中一般定义的都是方法,如果想定义数据成员的话,默认全部都是静态常量。可以缺省public static final
    在这里插入图片描述
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值