抽象类

问题

比如,在一个图形编辑软件的分析设计过程中,就会发现问题领域存在着圆、三角形这样一些具体概念,它们是不同的,但是它们又都属于形状这样一个概念,形状这个概念在问题领域并不是直接存在的,它就是一个抽象概念。

抽象类

  • 使用abstract关键字来实现。
  • 如果一个类被abstract来修饰,则该类就是抽象类;如果一个方法被abstract来修饰,则该方法就是抽象方法。
  • 抽象类不能实例化。因为抽象的概念在问题领域没有对应的具体概念,所以用以表征抽象概念的抽象类是不能够实例化的。
  • 抽象类可以没有抽象方法
  • 一个类中只要有抽象方法,则该类必须声明为抽象类。
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<body>
<?php
	//正确:abstract class Animal{
	class Animal{
		abstract public function cry($Cry);
	}
	class Dog extends Animal{
		public function cry($dogCry){
			echo $dogCry."<br/>";
		}
	}
	$dog=new Dog();
	$dog->cry("汪汪");
?>
</body>
</html>

在这里插入图片描述

  • 如果一个类(A)继承了一个抽象类(B),则要求A实现从B继承来的所有抽象方法。
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<body>
<?php
	abstract class Animal{
		abstract public function cry($Cry);
	}
	class Dog extends Animal{
		/*public function cry($dogCry){
			echo $dogCry."<br/>";
		}*/
	}
	$dog=new Dog();
	$dog->cry("汪汪");
?>
</body>
</html>
  • 基本语法
abstract class 类名{
	abstract 修饰符 function 函数名(参数列表);
}

在这里插入图片描述

  • 简单案例
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<body>
<?php
	abstract class Animal{
		abstract public function cry($Cry);
	}
	class Dog extends Animal{
		public function cry($dogCry){
			echo $dogCry."<br/>";
		}
	}
	$dog=new Dog();
	$dog->cry("汪汪");
?>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值