package com.lr.day12.Extends;
public class Monkey {
//name属性
private String name;
//speak方法
public void speak(){
System.out.println("咿咿呀呀");
}
//eat方法
public void eat(){
System.out.println("小猴子喜欢吃桃子");
}
//无参构造方法
public Monkey() {
}
//有参构造方法
public Monkey(String name) {
this.name = name;
}
//set、get方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//tostring方法
@Override
public String toString() {
return "Monkey{" +
"name='" + name + ''' +
'}';
}
}
子类
package com.lr.day12.Extends;
public class People extends Monkey{
//重写speak方法
public void speak(){
System.out.println("小样的,不错嘛!会说话了!");
}
//特有的think方法
public void think(){
System.out.println("别说话!认真思考!");
}
//在构造方法中测试super、this
public People(String name){
speak();//子类的 小样的,不错嘛!会说话了!
this.speak();//子类的 小样的,不错嘛!会说话了!
super.speak();//父类的 咿咿呀呀
eat();//父类的 小猴子喜欢吃桃子
super.eat();//父类的 小猴子喜欢吃桃子
********
//super(name);
}
//在实例方法中测试super、this,结果相同
public void extendsTest(){
speak();
this.speak();
super.speak();
eat();
super.eat();
}
}`
##测试类
package com.lr.day12.Extends;
public class E {
public static void main(String[] args) {
People p=new People("xiaohouzi");
System.out.println("______________");
p.extendsTest();
p.think();
}
}
输出结果
小样的,不错嘛!会说话了!
小样的,不错嘛!会说话了!
咿咿呀呀
小猴子喜欢吃桃子
小猴子喜欢吃桃子
小样的,不错嘛!会说话了!
小样的,不错嘛!会说话了!
咿咿呀呀
小猴子喜欢吃桃子
小猴子喜欢吃桃子
别说话!认真思考!
在构造/实例方法中调用实例方法
1。子类没有,父类有。默认调父类的方法,super可省略
子类有,父类有。调父类的方法,super不可省略
子类有,父类有。调子类的方法,this.()或this可省略
2。super(实际参数列表)只允许出现在构造方法第一行,表示子类构造方法执行过程中调用父类的构造方法。
3。super可以用在实例方法中,也可以用在构造方法中,不能用在静态方法中/****



