java
继承:学习了继承的实现细节,以及深入继承,还有子类构造方法与父类构造方法的微妙关系,以及继承的意义
继承的实现细节中方法重写:(1)发生在父类和子类之间(2)方法名相同,参数列表相同,返回类型相同(3)子类重写方法的访问权限>=父类被重写的方法
提示:返回类型兼容即可,即不论父类声明的返回类型是什么,子类必须要声明返回一样的类型或该类型的子类
例如实现动物的继承
public class Cat {
private boolean mammal;//哺乳
private boolean carnivorous;//食肉
private int numOfLegs;//几条腿
private int mood;//情绪
private String say;//表达方式
//参加私有属性的getter,setter方法
public boolean isMammal() {
return mammal;
}
public void setMammal(boolean mammal) {
private boolean carnivorous;//食肉
private int numOfLegs;//几条腿
private int mood;//情绪
private String say;//表达方式
//参加私有属性的getter,setter方法
public boolean isMammal() {
return mammal;
}
public void setMammal(boolean mammal) {
}
public boolean isCarnivorous() {
return carnivorous;
}
public void setCarnivorous(boolean carnivorous) {
this.carnivorous = carnivorous;
}
public int getNumOfLegs() {
return numOfLegs;
}
public void setNumOfLegs(int numOfLegs) {
if(numOfLegs!=4) {
System.out.println("腿的条数错误!");
this.numOfLegs = numOfLegs;
}
}
public int getMood() {
return mood;
}
public void setMood(int mood) {
this.mood = mood;
}
public String say() {
return ("喵喵叫");
}
public String say(int mood) {//情绪
this.setMood(mood);
switch(mood) {
case 1:
return ("咕噜咕噜叫");
case 2:
return ("喵喵叫");
default:
return ("摇摇尾巴");
}
}
public Cat(){
this.mammal=true;
this.carnivorous=true;
this.numOfLegs=4;
this.mood=1;
this.say=say;
}
}
public boolean isCarnivorous() {
return carnivorous;
}
public void setCarnivorous(boolean carnivorous) {
this.carnivorous = carnivorous;
}
public int getNumOfLegs() {
return numOfLegs;
}
public void setNumOfLegs(int numOfLegs) {
if(numOfLegs!=4) {
System.out.println("腿的条数错误!");
this.numOfLegs = numOfLegs;
}
}
public int getMood() {
return mood;
}
public void setMood(int mood) {
this.mood = mood;
}
public String say() {
return ("喵喵叫");
}
public String say(int mood) {//情绪
this.setMood(mood);
switch(mood) {
case 1:
return ("咕噜咕噜叫");
case 2:
return ("喵喵叫");
default:
return ("摇摇尾巴");
}
}
public Cat(){
this.mammal=true;
this.carnivorous=true;
this.numOfLegs=4;
this.mood=1;
this.say=say;
}
}
import javax.swing.plaf.synth.SynthSeparatorUI;
public class TestCat {
public static void main(String[] args) {
Cat Cat=new Cat();
if(Cat.isMammal()){
System.out.println("猫是哺乳动物!");
}else{
System.out.println("猫是哺乳动物!");
}
if(Cat.isCarnivorous()){
System.out.println("猫是食肉动物!");
}else{
System.out.println("猫是食肉动物!");
}
System.out.println("一般情况下,猫打招呼的方式是:"+Cat.say());
System.out.println("猫现在的状态是:"+Cat.say(2));
System.out.println("猫烦躁打招呼的方式是:"+Cat.say(1));
System.out.println("猫情绪好时候打招呼的方式是:"+Cat.say(2));
System.out.println("猫有"+Cat.getNumOfLegs()+"4条腿");
}
}
public class TestCat {
public static void main(String[] args) {
Cat Cat=new Cat();
if(Cat.isMammal()){
System.out.println("猫是哺乳动物!");
}else{
System.out.println("猫是哺乳动物!");
}
if(Cat.isCarnivorous()){
System.out.println("猫是食肉动物!");
}else{
System.out.println("猫是食肉动物!");
}
System.out.println("一般情况下,猫打招呼的方式是:"+Cat.say());
System.out.println("猫现在的状态是:"+Cat.say(2));
System.out.println("猫烦躁打招呼的方式是:"+Cat.say(1));
System.out.println("猫情绪好时候打招呼的方式是:"+Cat.say(2));
System.out.println("猫有"+Cat.getNumOfLegs()+"4条腿");
}
}