继承:是防止子类出现重复代码。
方法重写的特点:
Animal:
public class Animal {
protected boolean mammal;//是否哺乳动物
protected boolean carnivorous;//是否是食肉动物
protected int mood;//心情
public boolean isMammal() {
return mammal;
}
public void setMammal(boolean mammal) {
this.mammal = mammal;
}
public boolean isCarnivorous() {
return carnivorous;
}
public void setCarnivorous(boolean carnivorous) {
this.carnivorous = carnivorous;
}
public int getMood() {
return mood;
}
public void setMood(int mood) {
this.mood = mood;
}
public Animal() {
super();
System.out.println("这是动物类的无参数的构造方法!");
}
public Animal(boolean mammal, boolean carnivorous, int mood) {
super();
System.out.println("这是动物的有参数构造方法!");
this.mammal = mammal;
this.carnivorous = carnivorous;
this.mood = mood;
}
public String sayHello(){
return "Hello";
}
public String sayHello(int mood){
switch(mood){
case 1:
return ("不高兴的叫");
case 2:
return ("高兴的叫");
default:
return ("Hello");
}
}
}
Frog:
public class Frog extends Animal {
private int numOfLegs;
private boolean gillFlag;//是否有鳃
private boolean laysEggs;//是否卵生
public int getNumOfLegs() {
return numOfLegs;
}
public void setNumOfLegs(int numOfLegs) {
this.numOfLegs = numOfLegs;
}
public boolean isGillFlag() {
return gillFlag;
}
public void setGillFlag(boolean gillFlag) {
this.gillFlag = gillFlag;
}
public boolean isLaysEggs() {
return laysEggs;
}
public void setLaysEggs(boolean laysEggs) {
this.laysEggs = laysEggs;
}
public Frog() {
super();
this.mammal=true;
this.carnivorous=true;
this.gillFlag=true;
this.laysEggs=true;
this.mood=1;
this.numOfLegs=4;
}
public Frog(boolean mammal, boolean carnivorous, int mood,int numOfLegs,boolean gillFlag,boolean laysEggs) {
super(mammal, carnivorous, mood);
this.numOfLegs=numOfLegs;
this.gillFlag=gillFlag;
this.laysEggs=laysEggs;
}
@Override
public String sayHello() {
// TODO Auto-generated method stub
return "呱呱呱";
}
@Override
public String sayHello(int mood) {
switch(mood){
case 1:
return("扑通一声跳入水中");
default:
return("呱呱呱");
}
}
public void show(){
if(this.mammal==true){
System.out.println("青蛙是哺乳动物");
}else{
System.out.println("青蛙不是哺乳动物");
}
if(this.carnivorous==true){
System.out.println("青蛙是食肉动物");
}else{
System.out.println("青蛙不是食肉动物");
}
if(this.gillFlag==true){
System.out.println("青蛙有鳃");
}else{
System.out.println("青蛙无鳃");
}
if(this.laysEggs==true){
System.out.println("青蛙产卵");
}else{
System.out.println("青蛙不产卵");
}
}
}
TestFrog:
public class TestFrog {
public static void main(String[] args) {
Frog frog1=new Frog();
frog1.show();
System.out.println("青蛙通常情况下,打招呼的方式为:"+frog1.sayHello());
System.out.println("青蛙情绪好的时候会:"+frog1.sayHello(0));
System.out.println("青蛙受到惊吓时会"+frog1.sayHello(1));
System.out.println("青蛙有"+frog1.getNumOfLegs()+"条腿");
System.out.println("-----------------------------");
Frog frog2=new Frog(false,false,1,6,true,true);
frog2.show();
System.out.println("青蛙通常情况下,打招呼的方式为:"+frog2.sayHello());
System.out.println("青蛙情绪好的时候会:"+frog2.sayHello(0));
System.out.println("青蛙受到惊吓时会"+frog2.sayHello(1));
System.out.println("青蛙有"+frog2.getNumOfLegs()+"条腿");
}
}