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.吐槽
重新换座位了,窗户边果然凉快,空气好点
近期评论