第十三天 继承
1.继承
(1)继承关键字extends 意思为扩展。
(2)java中只有单继承没有多继承(一个儿子有一个父亲,一个父亲可以有多个儿子)。
(3)子类可以继承父类的所有东西。
//父类
public class JiChen {
int Ys = 1_0000_0000;
public void speak(){
System.out.println("孩子我原神的"+Ys+"原石就交给你了,继承我的意志继续在提瓦特大陆冒险");
}
}
//然后建一个空的子类
public class Son extends JiChen{ }
//测试类
public class Test {
public static void main(String[] args) {
Son son = new Son();
System.out.println("你的父亲留给了你"+son.Ys+"原石");
son.speak();
}
}
从子类中调用到了父类的所有方法。
2.super关键字
(1)super调用父类的构造方法,必须构造方法的第一个。
(2)super必须只能出现在子类的方法或者构造方法中。
(3)this和super关键字的区别 :
代表的对象不同:this:代表本身调用者这个对象 super:代表父类对象的应用
前提 this:没有继承也可以进行使用 super:只能在继承条件下才可以进行使用
构造方法:this();,本类的构造 super(); 父类的构造
(4)私有的东西无法被继承。
public class JiChen {
public JiChen(){
System.out.println("Jichen的无参执行了");
}
String name = "神里绫华";
public void speak(String name){
System.out.println("我的名字是"+name);
}
public void print(){
System.out.println("JiChen");
}
}
public class Son extends JiChen{
public Son(){
//这里有一个隐藏代码为 super();为调用了父类的构造
System.out.println("Son的无参执行了");
}
String name = "甘雨";
public void speak(String name){
System.out.println("我的名字是"+super.name);
System.out.println("我的名字是"+this.name);
System.out.println("我的名字是"+name);
}
public void print(){
System.out.println("Son");
}
public void text(){
print();//Son
this.print();//Son
super.print();//JiChen
}
}
public class Test {
public static void main(String[] args) {
String name = "可莉";
Son son = new Son();
son.speak(name);
son.text();
}
}
/*
输出结果为:
Jichen的无参执行了
Son的无参执行了
我的名字是神里绫华
我的名字是甘雨
我的名字是可莉
Son
Son
JiChen
*/