继承的格式:public
class 子类名 extends 父类名{ }
关键字super:
在Java类中使用super来引用父类的成分
super可用于访问父类中定义的属性
super可用于调用父类中定义的成员方法
super可用于在子类构造方法中调用父类的构造方法
Supper关键字有两个特殊的用途:
在子类
构造函数中调用父类的构造函数
在子类中调用父类的方法。
子类中对父类方法的重写规则:
1、子类重写父类中的方法时,
访问权限只能扩大,不能减小(public>protected>默认>private);
2、父类中private权限的方法无法被子类重写;
3、子类方法必须和被重写的父类方法具有相同的方法名称、参数列表和返回
值类型。
方法
重载:在同一个类中可以定义多个同名方法。
1、重载方法的参数列表必须不同,也就是参数个数或参数类型不同;
2、重载方法的返回值类型可以相同,也可以不同。
构造方法重载:
1、构造方法重载,参数列表必须不同,也就是参数个数或参数类型不同;
2、可以在构造方法的第一行使用this关键字调用本类的其它(重载的)构造方法。
public class Test1 {
public static void main(String[] args) {
Autom a =new Autom("Autom");
a.setBlood(1000);
Monst m =new Monst("Monst");
m.setBlood(500);
Boss b =new Boss("Boss");
b.setBlood(500);
while(a.getBlood()>0 || m.getBlood() > 0 || b.getBlood() >0 )
{
a.pk(m);
a.pk(b);
m.pk(a);
b.pk(a);
}
}
}
public class Fa {
String name;
private int blood;
public void setBlood(int blood){
if(blood >=0 && blood <= 1000){
this.blood = blood;
}
}
//fa的构造方法
public Fa(String name){
this.name = name;
}
//得到血量值的方法
public int getBlood(){
return blood;
}
//st是被打对象
public void pk(Fa st){
//fightnum++;
st.blood--;
System.out.println(this.name+"剩下的血是"+this.blood
+" pk "+st.name+"剩下的血量是"+st.blood);
}
}
public class Autom extends Fa {
public Autom(String name){
super(name);
}
}
public class Boss extends Fa {
public Boss(String name){
super(name);
}
}
public class Monst extends Fa {
public Monst(String name){
super(name);
}
}