Java的抽象类、接口

抽象类

抽象类的使用:
1:abstract放在class前,指明该类是抽象类
2:abstract放在方法声明中,则该方法是抽象方法,抽象方法没有方法体
3:一个抽象类可以含有多个抽象方法,也可以含有已实现的方法
4:抽象方法必须在子类中被实现,除非子类是抽象类
5:抽象类不能实例化,即不能创建对象
实例

//抽象类
public abstract class Shape {
	double dim;
	public Shape(double dim) {
		this.dim = dim;
	}
	// 抽象方法,获得面积
	 public abstract double callArea();
	// 抽象方法,获得周长
	 public abstract double callPerimeter();
}


//子类实现抽象类的方法
public class Circle extends Shape {
	public Circle(double dim) {
		super(dim);
	}
	// 实现抽象方法callArea()
	public double callArea() {
		// 返回圆的面积
		return 3.14 * dim * dim;
	}
	// 实现抽象方法callPerimeter()
	public double callPerimeter() {
		// 返回圆的周长
		return 2 * 3.14 * dim;
	}
	public static void main(String[] args) {
		// 声明一个Shape对象,指向实现它的子类对象
		Shape shape = new Circle(10);
		// 调用callArea()求圆的面积,并输出
		System.out.println("圆的面积是:" + shape.callArea() );
		// 调用callPerimeter()求圆的周长,并输出
		System.out.println("圆的周长是:" + shape.callPerimeter() );
	}
}

注意
1:抽象类不能实例化,但可以指向一个实现它的子类对象;
2:abstract不能与final(修饰的类不能被继承,方法不能重写)同时修饰一个类;
3:abstract不能和static、private、final或native并列

接口

接口的特点:
1:Java是单继承的语言,利用接口可以模拟多继承;
2:接口是对抽象类的进一步抽象,是方法声明和常量的定义集合;
3:接口是一种行为规范,是一种“契约”;
4:接口不可以被实例化
5:实现类必须实现接口的所有方法
6:实现类可以实现多个接口
7:接口中的变量都是静态常量

注意事项:
在定义接口的时候,接口中的所有方法和常量自动定义为public。 接口中定义的变量默认是public static final 型,且必须赋初值。

实例

//定义接口
public interface USB {
  void read();
  void write();
}

//实现接口
class UDisk implements USB {
    @Override
    public void read() {
        System.out.println("U盘正在通过USB功能读取数据");
    }
    @Override
    public void write() {
        System.out.println("U盘正在通过USB功能写入数据");
    }
}
//实现接口
class Keyboard implements USB {
    @Override
    public void read() {
        System.out.println("键盘正在通过USB功能读取数据");
    }
    @Override
    public void write() {
        System.out.println("键盘正在通过USB功能写入数据");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值