Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1091481
  • 博文数量: 186
  • 博客积分: 4939
  • 博客等级: 上校
  • 技术积分: 2075
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-08 17:15
文章分类

全部博文(186)

文章存档

2018年(1)

2017年(3)

2016年(11)

2015年(42)

2014年(21)

2013年(9)

2012年(18)

2011年(46)

2010年(35)

分类: Python/Ruby

2011-08-29 15:43:46

    我的理解:实际上抽象类就是类的模板,它最少定义了一个抽象方法,不能被实例化,就是一个规范,比如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) |
给主人留下些什么吧!~~