我的理解:实际上抽象类就是类的模板,它最少定义了一个抽象方法,不能被实例化,就是一个规范,比如team leader定义了一个抽象类stat,里面有2个方法,getname,getsalary,那么留给coder的时候,必须完成2个抽象方法,然后才能实例化成一个obj,这样定义好了规范,你只要遵守即可。至于你定义的class里面getname,getsalary这2个方法如何实现,不是抽象类。比如继承抽象类以后可以让:
abstract class name_salary {
abstract function getName();
abstract function getSalary();
}
//it民工的待遇
class coder_salary extends name_salary
{
get salary () {
return 每月工资基础上+500的辛苦费
}
}
// boss的待遇
//.......
get salary(){
return 每月工资扣5000
}
这样coder,boss的薪资是2个计算方法,实际上实现了多态。
再说interface,当抽象类里所有方法都是抽象方法的时候,这个抽象类就是接口(接口实际上就是特殊的抽象类而已),可以描述几个不同父类和子类间的关系,比如某人可以继承父母的特征。
interface father{
function strong(); // 默认都是public
function brave();
}
同理定义mother ...
而子类son.
class son implements father mother
{ function strong (){
........}
//完成其他方法
}
然后可以实例化对象了。
阅读(1613) | 评论(0) | 转发(0) |