Java学习笔记(五)——抽象类,接口

1 抽象类

1.1 定义抽象类

  • 父类
abstract class shap{
public enum Color(red,bule);   //枚举
protected Coloe lineColor;
protected void setColor(Color lineColor){
this.lineClolor=lineColor;
}

protected abstract void draw();
protected abstract double getArea();
}
  • 派生的实例类
class Circle extends Shap{
	public static final double PI =3.1415926;
	private double radius;
	Circle(){}
	@override
	public void draw(){
		System.out.println("画图");
	}
	@override
	public double getArea(){
		return PI*ratius*radius;
	}
}

1.2 抽象类注意事项

  • abstract 声明,不能用来创建对象,但可以用来声明引用。
    Shap a = null;
    
  • 抽象类中使用 abstract 声明的抽象方法作为成员。这些方法只有声明,没有实现(方法体)。抽象类中可以没有抽象的方法。
  • 实例类必须将父类中抽象的方法全部重新定义。如果没有完全实现父类的抽象方法,该子类也必须定义为抽象类。
  • abstract 不能和 final 连用,抽象方法和非内部类的抽象类不能用private修饰。
  • 抽象方法和非内部抽象类不能用 static 修饰
  • 抽象类中定义构造器必须是非抽象的

2 接口

2.1 定义接口

interface IArea{
	double PI = 3.1415926;     //可加final
	double getArea();          //可加final static
}
interface IDraw{
	public abstract void draw();
}

2.2 接口实现类

  • 单一接口实现类
public class Circle implements IArea{
	private double radius;
	Circle(){}
	Circle(double radius){
		this.radius = radius;
	}
	@override
	public double getArea(){
		return PI*radius*radius;
	}
}
  • 一个类作为多个接口的实现类
public class Circle implements IArea, IDraw{
	private double radius;
	Circle(){}
	Circle(double radius){
		this.radius = radius;
	}
	@override
	public double getArea(){
		return PI*radius*radius;
	}
	@override
	public void draw(){
		System.out.println("画图");
	}
}
  • 带有父类的接口实现类
public class Circle extends Shap implements IArea,IDraw{
	private double radius;
	Circle(){}
	Circle(double radius){
		this.radius = radius;
	}
	@override
	public double getArea(){
		return PI*radius*radius;
	}
	@override
	public void draw(){
		System.out.println("画图");
	}
}

2.3 接口规范

  • 接口用interface引出, 其前可以使用static, public
  • 接口所有方法被隐式声明为abstract 和 public
  • 接口中没有构造器
  • 如果接口的实现类不能全部实现接口中的方法,就必须将其定义为抽象类
  • 接口可以建立继承关系,形成复合类
interface IArea{
	double PI = 3.1415926;     //可加final
	double getArea();          //可加final static
}
interface IDraw{
	public abstract void draw();
}
interface ICalcuDraw extends IArea,IDraw{
	void Coloring();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值