学Java第三十四天-----抽象类和抽象方法
一、定义
各个子类的相同方法所包含的内容是不一样的,这时候要用到抽象方法。其实和前面的方法重写@Override是一样的,只不过抽象方法能做到强制程序员重写方法
二、注意事项
注意:虽然抽象类不能创建对象,但还是要写构造函数,因为抽象类的子类在创建对象时要有属性。所以不管是子类还是父类都要有构造函数。
三、代码示例
1、动物类---父类
package com.abstractclass.demo2;public abstract class Animal {private String name;private int age;public Animal() {}public Animal(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public void drink(){System.out.println("动物在喝水");}public abstract void eat();
}
2、青蛙类-----子类
package com.abstractclass.demo2;public class Frog extends Animal{public Frog() {}public Frog(String name, int age) {super(name, age);}@Overridepublic void eat() {System.out.println("青蛙在吃虫子");}
}
3、狗类-----子类
package com.abstractclass.demo2;public class Dog extends Animal{@Overridepublic void eat() {System.out.println("狗在吃骨头");}public Dog() {}public Dog(String name, int age) {super(name, age);}
}
4、山羊类-----子类
package com.abstractclass.demo2;public class Goat extends Animal{@Overridepublic void eat() {System.out.println("山羊在吃草");}public Goat() {}public Goat(String name, int age) {super(name, age);}
}
注意:1、子类也必须要有构造函数,有参+无参的都要,不然无法创建对象。
2、出现红色波浪线时,先用鼠标点击波浪线,再输入Alt+回车