java中父类与子类的关系以及使用
在java中规定:一个父类可以有多个子类,但是一个子类只能有一个父类。子类可以通过extends关键字来继承父类。做个比较通俗的比喻,就像一个父亲可以有多个亲孩子,但是一个孩子只能有一个亲生父亲。

1.继承以及重写:子类继承父类是对父类属性和方法的全面继承,同时子类在继承了父类的方法后,可对父类的方法进行重写。

public class Son extends Fat{
 private int b;
 private String h1;
 public void sss() {
 System.out.println(“我要学好英语”); //在这我们对父类中的sss()方法进行了重写
 }
 public void iii() {
 System.out.println(“今天天气真好”); // 在这我们添加了子类特有的方法
 }}
 class Fat{
 public int a=5;
 private String h;
 public void sss() {
 System.out.println(“我要学好java”);
 }}

2.父类用作对象的声明类型,构造器用子类的构造器(有点类似于接口和实现类的对象的关系)。这样使得我们的应用场景和范围更为灵活和广泛。我们知道一个父类可以有多个子类,这样我们可以在声明的时候用父类,在具体的构造器时,我们用子类。这时,这个新生成的对象是父类类型的对象,也就是说这个对象中目前只有父类的属性和方法(如果子类重写,则用子类重写的方法)。如果我们需要调用子类中特有的方法和属性,则我们需要将该对象强制转换成子类类型的对象。看下面代码

public class TestSon {
 public static void main(String[] args) {
 Fat s=new Son(); //我们在这进行了父类用作对象的声明类型,构造器用子类的构造器。
 s.sss(); //我们调用了对象中的sss()方法,为我们重写过的方法
 System.out.println(s.a); // 我们展示了父类中属性a的值,此处为public(没有进行封装)
 Son y=(Son)s; //将s对象转化为Son类型的y对象
 y.iii();; //这样我们可以通过y对象来调用子类中特有的iii()方法。
 int u=y.b; //同时我们也可以接受子类中特有的属性b。}
}