继承概念

java类的继承注意事项总结_super关键字

package test;

public class test1 {
String name;

public void shout() {
System.out.println("呜呜呜");
}
}
package test;

public class test2 extends test1 {
//不允许多继承,也就是说一个类只能有一个直接父类
//多个类可以继承同一个父类
//在Java中,多层继承是可以的
public void name() {
System.out.println(name + "的叫声");
}

public static void main(String[] args) {
test2 dog = new test2();
dog.name = "哈士奇";
dog.name();
dog.shout();
//输出:哈士奇的叫声
// 呜呜呜
}
}

重写父类方法

package test;

public class test3 {
public void shout(){
System.out.println("这是我的输出");
}

}
package test;

public class test4 extends test3 {
public void shout() {
System.out.println("更改父类shout()方法输出");//重写父类方法
}

public static void main(String[] args) {
test4 ts = new test4();
ts.shout();
// 子类会自动继承父类中定义的方法,
// 子类可以对继承的方法进行一些修改,即对父类的方法进行重写。
// 需要注意的是,在子类中重写的方法需要和父类被重写的方法具有相同的
// 方法名、参数列表以及返回值类型。
}
}

super关键字

java类的继承注意事项总结_子类_02

package test;

public class test5 {
String name="动物";
public void shout(){
System.out.println("动物发出叫声!");
}

}
package test;

public class test6 extends test5 {
String name = "犬类";

//方法
public void shout() {
System.out.println("犬类发出叫声");
super.shout();//super访问父类的方法
}

//变量
public void printName() {
System.out.println("dog name" + name);
System.out.println("animal name" + super.name);
//super访问父类的成员变量
}

public static void main(String[] args) {
test6 dog = new test6();
dog.shout();
dog.printName();
// 输出: 犬类发出叫声
// 动物发出叫声!
// dog name犬类
// animal name动物
}
}
package test;

public class test7 {
public test7(String name){
System.out.println("我是一位"+name);
}
}
package test;

public class test8 extends test7{
public test8(String name){
super(name);//调用父类方法中变量这一条链
}

public static void main(String[] args) {
test8 ts = new test8("学生");
//输出:我是一位学生
}
}
package test;

public class test9 {
public test9() {
System.out.println("hello jack");
}
}
package test;

public class test10 extends test9 {
public test10() {
System.out.println("hello tom");
}

public static void main(String[] args) {
test10 ts = new test10();
//输出子类和父类的句子
}
}