public class SuperTest1 {
public static void main(String[] args) {
Cats c = new Cats();
c.catchMouse();
}
}
class Animals{
public void move(){
System.out.println("Animals move");
}
}
class Cats extends Animals{
public void move(){
System.out.println("Cat move");
}
public void catchMouse(){
System.out.println("Cat catchMouse");
this.move();//当前类中方法
move();//默认当前类中方法
super.move();//父类中方法
}
}
运行结果
Cat catchMouse
Cat move
Cat move
Animals move
进程已结束,退出代码0
------------------------------------------------------------------------------------------------
public class SuperTest1 {
public static void main(String[] args) {
Cats c = new Cats();
c.catchMouse();
}
}
class Animals{
public void move(){
System.out.println("Animals move");
}
}
class Cats extends Animals{
/*
public void move(){
System.out.println("Cat move");
}
*/
public void catchMouse(){
System.out.println("Cat catchMouse");
this.move();//当前类中没有找父类
move();//当前类中没有找父类
super.move();
}
}
运行结果
Cat catchMouse
Animals move
Animals move
Animals move
进程已结束,退出代码0
------------------------------------------------------------------------------------------------
public class AAAA {
public static void main(String[] args) {
new Gd();
}
}
class Fd{
public Fd(int i) {
System.out.println("fd");
System.out.println(i);
}
}
class Gd extends Fd{
public Gd() {
this("mingxia");//调用有参构造方法
}
public Gd(String name){
super(200);//调用父类构造方法
System.out.println(name);
}
}
运行结果
fd
200
mingxia
进程已结束,退出代码0
------------------------------------------------------------------------------------------------
public class BBB {
public static void main(String[] args) {
new Hj();
}
}
class Fh{
public Fh() {
System.out.println("fh");
}
}
class Hj extends Fh{
public Hj() {
//super();默认调用父类无参构造方法,但是大多数情况下省了不写
System.out.println("Hj");
}
}
运行结果
fh
Hj
进程已结束,退出代码0
总结:
1.super.属性名 访问父类的属性
2.super.方法名 (实参) 访问父类的方法
3.super(实参) 调用父类的构造方法
super()只能出现在构造方法第一行,通过当前的构造方法去调用“父类”中的构造方法。目的是;创建子类对象的时候,先初始化父类特征
super只能出现在实例方法和构造方法中