abstract抽象类

面向对象编程的核心就是面向抽象编程,开发中一般依赖抽象,不依赖具体。

抽象类简介

包含抽象方法的类叫做抽象类。抽象类不允许直接创建实例,只能由子类提供方法实现后才能通过子类创建对象。
抽象方法是指没有方法体的方法,方法只做声明,没有具体实现。抽象方法必须在子类中提供具体实现。
抽象类可以包含抽象方法,不是必须包含抽象方法。
语法:

public abstract class Flowers{} //抽象类

public class Rose extends Flowers{}//抽象类的子类,抽象父类中的抽象方法在子类中实现,抽象方法在父类中只能声明

Flowers bea = new Rose();//直接newFlowers会报错

特点:
包含抽象方法的类就是抽象类,但是抽象类中可以没有抽象方法

public abstract class Flowers{
	public void pp(){}
	public abstract void cc();//抽象方法,注意抽象方法不能包含方法体{}
}

抽象类不能直接进行new操作,只能定义具体实现的子类后进行new操作。
抽象类中可以定义构造器,也可以不定义构造器,由系统自动提供无参构造器。
抽象类不允许new操作和没有构造器无关。

public abstract class Flowers{}  //abstract class 用于声明抽象类

public class Rose extends Flowers {}//具体类必须实现抽象类中的所有抽象方法,否则这个类还是抽象类

Flowers h = new Rose();

抽象类和普通类一样,可以定义成员方法、成员属性、构造器和析构器,抽象类允许包含抽象方法。
普通类继承抽象类,必须对抽象类中所有的抽象方法提供具体实现

public abstract class Flowers{
	private String name;
	protected int age;

	//构造器
	public Flowers(){}
	public Flowers(int age){}

//普通成员方法
	public void Grow(){
		System.out.println("花期一个月")
	}
	public abstract void sale();//抽象方法

}

public abstract class Rose extends Floewrs{
//内部如果没有针对Sale方法提供实现,则当前子类只能是抽象类
}
public abstract class Lily extends Floewrs{
	public void sale(){} //允许空实现,但是不能没有实现
}

在具体应用中,一般抽象类用于定义规范或者普通方法
通用方法是为了共享,避免子类重复定义
规范是为严格要求子类必须提供实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值