类继承二
类继承2
复写
同虚函数相似,当一个子类继承一父类,而子类中的方法与父类中的方法的名称,参数个数、类型都完全一致时,就称子类中的这个方法复写了父类中的方法。同理,如果子类中重复定义了父类中已有的属性,则称此子类中的属性复写了父类中的属性。通过声明子类对象,可以调用子类中复写的方法,通过super.方法()的方式可以调用父类中被子类复写的方法。
抽象类
抽象类和抽象方法(相当于虚函数和虚基类)都必须用abstract关键字来修饰。含有抽象方法的类必须被声明为抽象类,抽象类的子类必须复写所有的抽象方法后才能被实例化,否则这个子类还是个抽象类。抽象类不能被实例化,也就是不能用new关键字去产生对象。抽象方法只需声明,而不需实现。
abstract class Person
{
String name ;
int age ;
String occupation ;
// 声明一抽象方法talk()
public abstract String talk() ;
}
在抽象类定义的语法中,方法的定义可分为两种:一种是一般的方法,它和先前介绍过的方法没有什么两样;另一种是“抽象方法”,它是以abstract关键字为开头的方法,此方法只声明了返回值的数据类型、方法名称与所需的参数,但没有定义方法体。
与一般类相同,在抽象类中,也可以拥有构造方法,但是这些构造方法必须在子类中被调用
public Student(String name,int age,String occupation)
{
// 在这里必须明确调用抽象类中的构造方法
super(name,age,occupation);
}
复写
同虚函数相似,当一个子类继承一父类,而子类中的方法与父类中的方法的名称,参数个数、类型都完全一致时,就称子类中的这个方法复写了父类中的方法。同理,如果子类中重复定义了父类中已有的属性,则称此子类中的属性复写了父类中的属性。通过声明子类对象,可以调用子类中复写的方法,通过super.方法()的方式可以调用父类中被子类复写的方法。
抽象类
抽象类和抽象方法(相当于虚函数和虚基类)都必须用abstract关键字来修饰。含有抽象方法的类必须被声明为抽象类,抽象类的子类必须复写所有的抽象方法后才能被实例化,否则这个子类还是个抽象类。抽象类不能被实例化,也就是不能用new关键字去产生对象。抽象方法只需声明,而不需实现。
abstract class Person
{
String name ;
int age ;
String occupation ;
// 声明一抽象方法talk()
public abstract String talk() ;
}
在抽象类定义的语法中,方法的定义可分为两种:一种是一般的方法,它和先前介绍过的方法没有什么两样;另一种是“抽象方法”,它是以abstract关键字为开头的方法,此方法只声明了返回值的数据类型、方法名称与所需的参数,但没有定义方法体。
与一般类相同,在抽象类中,也可以拥有构造方法,但是这些构造方法必须在子类中被调用
public Student(String name,int age,String occupation)
{
// 在这里必须明确调用抽象类中的构造方法
super(name,age,occupation);
}