this.表示调用类里的属性,所以即使属性和参数重名,加了this也能区分。所以注意类方法里要用属性时需加this.
子类新增属性需要在构造函数下调用super(父类类名)
构造函数construction(),括号里面可以加参数,这样new对象的时候括号里也必须写参数。
static修饰的静态属性和方法只能由类修改调用,成员不可见。
继承:class 子类 extends 父类
子类是父类的超集,直接继承父类属性方法。若子类中方法和父类中方法同名,则直接覆盖父类方法。不想覆盖只做修改,则用super.function()。
抽象类: abstract class 类名
本身不能被实例化为对象,但可以被继承。
抽象类就是用来被别的类继承的。抽象类的抽象方法abstract function()需要在子类中实现。这样不同的子类都必须有function,但是可以各自不一样。
父类指针可以指向子类对象。
接口:解决没有多继承的问题。
interface Wolf{
function(); //写方法名,不写实现
}
class Wolfman extends Person interface Wolf{
function(){
//类里必须实现接口的方法
}
}
类里写属性寄存器 :get+set
get varname(){
return originvar;
}
set varname(value){
//具体赋值操作
}
这样对象认为有varname这个成员,即使原来类里只定义了originvar