继承是从已有的类创建新类的过程
- 继承是面向对象三大特征之一
- 被继承的类称为父类(超类),继承父类的类称为子类(派生类)
- 继承是指一个对象直接使用另一对象的属性和方法
- 通过继承可以实现代码重用
语法:[访问权限] class 子类名 extends 父类名{
类体定义;
}
/**
继承一个父类,只能继承非私有的数据(属性和方法)
protected访问权限修饰符,在继承关系中使用,在父类中使用protected修饰的属性或方法可以被子类继承
创建子类对象时,父类的构造方法也会被调用,为什么?
因为子类要使用到父类的数据,那么就要通过父类的构造方法来初始化数据
如果创建子类对象时会调用父亲的默认构造方法
*/
public class Main{
public static void main(String[] args){
Son son=new Son();
Grandson grandson=new Grandson();
son.setWeight(62);
son.setHand("一双大手");
grandson.setWeight(29);
grandson.setHand("一双小手");
grandson.setFoot("一双小脚");
System.out.println("儿子的重量:"+son.getWeight());
System.out.println("孙子的重量:"+grandson.getWeight());
System.out.println("儿子的手:"+son.getHand());
System.out.println("孙子的手:"+grandson.getHand());
System.out.println("孙子的脚:"+grandson.getFoot());
}
}
class Father{
private int money;
int weight;
int getWeight(){
return weight;
}
protected void setWeight(int w){
this.weight=w;
}
}
class Son extends Father{
String hand;
public void setHand(String hand){
this.hand=hand;
}
String getHand(){
return hand;
}
}
class Grandson extends Son{
String foot;
public void setFoot(String foot){
this.foot=foot;
}
String getFoot(){
return foot;
}
}
运行结果
儿子的重量:62
孙子的重量:29
儿子的手:一双大手
孙子的手:一双小手
孙子的脚:一双小脚