Java的继承
继承顾名思义就是儿子继承父亲的所有东西,在Java的继承中,被继承的类称为父类,继承的类称为子类,子类继承了父类所有的属性和方法,而且子类还可以增加自己的属性跟方法。
**Java继承的好处有三点:
①:编码的时候更加的高效;
②:让代码维护起来比较方便;
③:代码的重用;
**
Java的使用规则
①:Java的继承支支持单继承,也就是说Java的子类只能有一个父类,不允许一个子类同时有多个父类;
②:一个父类可以同时有多个父类;
③:子类继承了父类所有的属性和方法,同时子类可以增加自己的属性和方法;
(其实理解起来也是很容易的,就是一个父亲可以同时有很多儿子,但是这些儿子只能有一个父亲,这些儿子可以继承父亲所有的属性和方法,自己又可以去调加新的属性方法);
继承书写的语法
[修饰符] class 子类名 extends 父类名;
public class father {
public void show() { //创建一个show方法
System.out.println("继承类方法");
}
}
//这是父类
public class son1 extends father{
public static void main(String[] args) {
son1 a =new son1(); //创建新对象
a.show(); //去调用father中的show方法;
}
}
//这是子类
调用构造方法,可以使用super或this。
super()
作用:调用父类的构造器;
①:只能出现在子类的构造器中,并且在第一行;
②:super()中的参数,觉得调用了父类的哪个构造器;
③:如果子类中没有出现Super那么编译器会默认加上super(),就是调用空的父类构造器,如果连空的父类构造器都没有的话,那么编译器就会提示错误;
this()
作用:只能调用本类的构造器;
只能写在构造器的第一行;
构造器:子类并不继承父类的构造器,它只是调用父类的构造器,如果父类的构造器带有参数,那么子类需通过Super()方法去调用父类的构造器,并添加相应的参数。
如果父类构造器中没有参数的话,那么在子类中并不需要用到super,编译器会自动添加一个无参的父类构造器。
public class father {
String name;
int age;
public father(String name, int age) {
this.name = name;
this.age = age;
}
public void show() {
System.out.println("输出结果为:"+"我是"+name+"今年"+age);
}
public static void main(String[] args) {
father a = new father("爸爸",40);
a.show();
}
}
输出结果为:我是爸爸今年40
public class son extends father{
public son(String name, int age) {
super(name,age); //调用父类的构造器
}
public static void main(String[] args) {
son i = new son("儿子", 12);
i.show();
}
}
输出结果为:我是儿子今年12