使用vitual关键字必须有实现。
子类可以overriide也可以不override。
抽象类(abstract)
abstract public viod Show();不用实现且不能实现。有抽象方法,类就必须是抽象类。抽象类不能实例化不能new,存在的意义就是让子类继承。
父类需不需要实例化,如果不需要就用抽象类。
抽象类中可以有自己的非abstract的成员。
抽象类可以有抽象成员也可以有非抽象成员。但是一旦有了抽象成员,那么这个类必须是抽象类。
virtual对于子类来说可以override也可以不override。
但是abstract对于子类来说,必须override,除非子类也是抽象类。
三种关键字可以override,virtual、abstract、override.
person []p=new person[5]; new person[5]是声明。p[1]=new person();这个是实例化。
父类使用virtual的方法,子类用new,这样父类指针指向的是virtual. new表示是自己的。new可以被继承,但不可以被override。
interface
子类可以overriide也可以不override。
抽象类(abstract)
abstract public viod Show();不用实现且不能实现。有抽象方法,类就必须是抽象类。抽象类不能实例化不能new,存在的意义就是让子类继承。
父类需不需要实例化,如果不需要就用抽象类。
抽象类中可以有自己的非abstract的成员。
抽象类可以有抽象成员也可以有非抽象成员。但是一旦有了抽象成员,那么这个类必须是抽象类。
virtual对于子类来说可以override也可以不override。
但是abstract对于子类来说,必须override,除非子类也是抽象类。
三种关键字可以override,virtual、abstract、override.
person []p=new person[5]; new person[5]是声明。p[1]=new person();这个是实例化。
父类使用virtual的方法,子类用new,这样父类指针指向的是virtual. new表示是自己的。new可以被继承,但不可以被override。
interface
定义的方法前面不能加访问修饰符,如:public。
不能实现方法。
子类必须实现方法。