所有的模型类共用AppModel中的方法,并且直接操作也是操作模型对象本身。
所以这里有个方法就很重要:get_called_class(),可以获取真实调用的子类的类名
这时候私有化就很有用了,直接将AppMode类中的属性私有化,这样子类的定义就算和父类同名,也是互不影响的。
这个时候get和set方法的作用就体现出来了,可以写两个方法,一个获取这个私有属性,一个用于修改这个私有属性
这个时候就可以用final关键字,用它来修饰方法可以保证方法不被子类重写
如果修饰类的话会使类变成最终类,也就是不可被继承的类。
可以使用返回this,在方法结束后返回this,这样实际在调用的时候并不需要用变量来保留,可以直接继续调用下一个方法。
可以用const 关键字定义一个属性,一旦被const定义后在程序中就不能更改。访问也必须用静态调用。
可以,用对象的方式可以直接调用静态方法,但是反过来是不行的。普通方法只能通过实例化对象后调用。我想是因为静态方法优先加载于普通方法,所以用静态的方法去调用普通方法,那个时候普通方法都不存在,拿什么调用呢。又或者说是普通方法是存在于对象中的,对象都没有何来普通方法。
重载和重写的区别?
get_called_class()和get_class()的区别?
什么非转发调用和转发调用?