类将java分成了若干个框架,来一起形成一个完整的程序。有时我们不难发现,某些类是一被个大类所包含,例如苹果类,梨子类都是水果类的附属,由其衍生而来。我们为了减少工作量,也为了层次性更强,就用到了类的继承
public class Fruit{
public void show(){
System.out.print("我是水果");
}
}
定义一个父类
public class Apple extends Fruit{
public void showMyself(){
System.out.print("我是苹果");
}
public void show(){
System.out.print("我还是苹果");
}
}
用extends继承父类,继承后子类可以有自己的方法,也可以直接调用父类的方法,当然也可以重写父类的方法,但父类对象不能调用子类方法,需强制转型后才能调用,前提是之前自动转型过。
其实继承就像树状图,子类们只能继承一个父类,子类又可作为父类。
特殊一点的是接口和抽象类,接口定义用interface,实现用关键字implements,实现类中必须重写接口中所有的方法,因为接口类中方法有形无实(抽象方法)。抽象类定义用abstract,继承还是extends,必须重写所有抽象方法。
public class Fruit{
public void show(){
System.out.print("我是水果");
}
}
定义一个父类
public class Apple extends Fruit{
public void showMyself(){
System.out.print("我是苹果");
}
public void show(){
System.out.print("我还是苹果");
}
}
用extends继承父类,继承后子类可以有自己的方法,也可以直接调用父类的方法,当然也可以重写父类的方法,但父类对象不能调用子类方法,需强制转型后才能调用,前提是之前自动转型过。
其实继承就像树状图,子类们只能继承一个父类,子类又可作为父类。
特殊一点的是接口和抽象类,接口定义用interface,实现用关键字implements,实现类中必须重写接口中所有的方法,因为接口类中方法有形无实(抽象方法)。抽象类定义用abstract,继承还是extends,必须重写所有抽象方法。