A. c#中抽象类和虚类的区别
虚方法的关键字是virtual
抽象方法的关键字是abstract
虚方法和抽象方法的区别:
虚方法:可以在抽象类和非抽象类中定义,可以写在父类中,在子类中可以被重写,在定义虚方法时必须实现虚方法(在定义虚方法时需要写实现方法的代码或者至少要写一个分号)
抽象方法:必须定义在抽象类中,必须写在父类中,在子类中必须被重写,在定义抽象方法时不能实现方法(在定义抽象方法时不能有大括号和代码)
例如:
人:
普通人:输出姓名(输出信息要写在人的类中)
学生:输出姓名、学号、年龄、爱好等
家长:输出姓名、联系电话
教师:输出姓名、所授课程
注:如果我们实现的这个功能它的一部分功能(输出)要写在父类中,而且在不同的子类中需要重写,那么在父类中的方法必须定义为虚方法,否则,如果在父类中只需要指定有什么功能,但不需要实现,这个时候我们就把父类中的方法定义为抽象方法
B. 抽象方法有何特点抽象方法的方法体在何处定义定义抽象方法有何好处
抽象方法一般都定义在父类里面,但这个父类也必须是抽象的,它的穗裂弊特点是没有方法体,只有方法名如:
abstract class A{
public abstract void print();//print()方法没有方源备法体;
}
//类B 继承A,类B 必须实猜族现父类A中的抽象方法print()
class B extends A{
public void print(){
//方法体....
}
}
抽象方法的好处就在于能让子类做一些特定的事
C. java中抽象方法不能使用修饰符_和_修饰
private和final