一.抽象类的定义(关键词 abstract)
- 抽象类不能实例化对象,但类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。
- 由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。
-
父类包含了子类集合的常见的方法,但是由于父类本身是抽象的,所以不能使用这些方法。
-
在Java中抽象类表示的是一种继承关系,一个类只能继承(extends)一个抽象类,而一个类却可以实现(implements)多个接口。
-
定义抽象类
package csdn; import csdn.Animal; public class Cat extends Animal{ public Cat(String name, int age, String sex) { super(name, age, sex); } @Override public String toString() { return "Cat =" + getName() + ", " + getAge() + ", " + getSex(); } }
package csdn; public abstract class Animal{ private String name; private int age; private String sex; public Animal(String name, int age, String sex) { this.name = name; this.age = age; this.sex = sex; } 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 String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } }
package csdn; public class Main { public static void main(String[] args) { Cat cat = new Cat("jumao", 2, "male"); System.out.println(cat); } }
二.抽象方法
-
Abstract 关键字同样可以用来声明抽象方法,抽象方法只包含一个方法名,而没有方法体。
抽象方法没有定义,方法名后面直接跟一个分号,而不是花括号。
-
抽象类:public abstract String eat(String food);
-
抽象类的子类:@Override
public String eat(String food) {
return food;}