DESKTOP-7J91214_20200827-张军强

1.问题

普通类

public class Pet {        //这是宠物类,普通父类
public void eat(){               //方法里是空的  
}  
}  
--------------------------  
public class Cat extends Pet {    //这是子类,是一个猫类,重写了父类方法  
public void eat(){  
  System.out.println("猫吃鱼");  
}  
}  
------------------------  
public class Dog extends Pet {    //这是子类,是一个狗类,重写了父类方法  
  public void eat(){  
  System.out.println("狗吃骨头");  
 }  
}  
-------------------------  
public class Test {  
public static void main(String[] args) {  //这是测试类,分别调用了子类的不同方法 
Pet p1=new Dog();                               
Pet p2=new Cat();   
p1.play();  
p2.play();  
}  
}  


抽象类

public abstract class Pet {        //这是宠物类,抽象父类
public abstract void eat();       //抽象方法    
}  
--------------------------  
public class Cat extends Pet {    //这是子类,是一个猫类,重写了父类方法  
public void play(){  
  System.out.println("猫吃鱼");  
}  
}  
------------------------  
public class Dog extends Pet {    //这是子类,是一个狗类,重写了父类方法  
  public void play(){  
  System.out.println("狗吃骨头");  
 }  
}  
-------------------------  
public class Test {  
public static void main(String[] args) {  //这是测试类,分别调用了子类的不同方法 
Pet p1=new Dog();                               
Pet p2=new Cat();   
p1.play();  
p2.play();  
}  
}  

两种方式都能达到同一个输出效果,会优先使用哪一种 ? 那为什么还要创造出一个抽象类出来?

2.解决

有点不能理解

3.吐槽

重新换座位了,窗户边果然凉快,空气好点

标签


© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1