SAP OO 面向对象 抽象类/方法 接口(四)

今天给大家分享的是SAP OO面向对象的抽象类/方法和接口这两个概念.
抽象类
1.和java中概念是一样的,在一个类中有一个或多个抽象方法的类叫做抽象类.
2.抽象类不可以被实例化对象,只能通过子类继承抽象类的方式,去实例化子类.
3.抽象类中的方法是没有具体是实现,只有方法的声明.
class <class_name> definition abstract .
抽象方法
仅包含方法的声明定义,没有方法体,需要子类来实现具体的方法功能.
methods <meth_name> abstract .

接口
1.接口的定义和抽象类的定义类似,也是只有方法的声明定义,没有方法的具体实现,需要继承才能实现接口中的具体方法功能.
2.不需要方法的实现,不能直接实例化
3.接口中的成员全是抽象的对象
4.接口成员一般都是公有的
5.接口不能有构造方法
6.静态成员访问时,通过接口引用访问 intf=>const
7.其他成员可以通过实现该接口的类的本身或者类引用进行方法
class=>intf~attrcall method class=>intf~meth.
8.也可以通过别名的方式进行调用.
aliases alias for intf~com1

接下来我们就看看代码的实现

*接口
interface inter .
	methods write_inter.
endinterface.

*1.定义抽象类/方法
class lcl_abstract definition abstract. "抽象
*class lcl_abstract definition . "接口
	public section .
*抽象
		methods write_abstract .
		methods write_abstract_02 abstract .

*接口
		interfaces inter 
		aliases write_interface for inter~write_inter. "别名

endclass .

*2.实例化类
class lcl_abstract implementation .
	method write_abstract.
		write: / '抽象中的实例方法'
    endmethod.

*接口
*method inter~write_inter .
method write_interface.  "使用别名
	write: / '接口中的方法调用'.
endmethod.

endclass .

*2.1继承抽象类
class lcl_sub_02 definition inheriting from lcl_abstract.
	public section .
		methods write_abstract_02.
endclass.

*2.2实例化抽象类
class lcl_sub_02 implementation.
	method write_abstract.
		write: / '抽象类中的抽象方法'.
	endmethod.
endclass.

*3.声明实例化类对象
data lcl_object_inter type ref to lcl_compt. "接口
data lcl_object_abs type ref to lcl_sub_02. "抽象

start-of-selection.

*4.创建对象
create object lcl_object_abs. "抽象
create object lcl_object_inter.  "接口

*5.(抽象)调用对象
call method lcl_object->write_abstract .
call method lcl_object->write_abstract_02.

*5.1(接口)调用对象
*call method lcl_object_inter->inter~write_inter.  "正常调用
call method lcl_object_initer->write_interface. "别名调用

注意
当抽象类中既有实例方法又有抽象方法时,此时实例化的类不可以声明实例化对象,只能通过继承抽象类,再实例化类,再进行实例化对象声明创建和调用.

注意
接口和抽象他们的实例化要做个不计较,不然容易弄混.
总结:
接口
1.定义接口
2.在定义类中声明接口
3.实例化类并实例化接口中的方法
4.声明实例化对象
5.创建实例化对象
6.调用接口
抽象
1.定义抽象类声明
2.实例化类(可有可无,主要看定类中是否有实例方法)
3.继承并声明抽象类
4.实例化子类.
5.声明实例话对象
6.创建实例化对象
7.调用抽象方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨天行舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值