1.抽象的概念:
图示:

2.抽象类和抽象方法:
代码一:
abstract class Animal {
public Animal() {
System.out.println("抽象父类构造方法执行!");
}
//这是一个抽象方法,代表吃东西,但是具体吃什么(大括号的内容)不确定。
public abstract void eat();
//普通的成员方法
public void normalMethod(){
}
}
class Cat extends Animal {
public Cat() {
//super()
System.out.println("子类构造方法执行!");
}
@Override
public void eat(){
System.out.println("猫吃鱼!");
}
}
public class PracticeAbstract {
public static void main(String[] args) {
// Animal animal = new Animal();//错误写法不能直接创建抽象类对象
Cat cat = new Cat();
cat.eat();
}
}
运行结果:

代码2:
//最高的抽象父类
abstract class Animal {
public abstract void eat();
public abstract void sleep();
}
//子类也是一个抽象类
abstract class Dog extends Animal {
@Override
public void eat(){
System.out.println("吃骨头!");
}
//public abstract void sleep();
}
class Dog2Ha extends Dog {
@Override
public void sleep() {
System.out.println("嘿嘿嘿....");
}
}
class DogGolden extends Dog {
@Override
public void sleep() {
System.out.println("呼呼呼.....");
}
}
public class Main {
public static void main(String[] args) {
Dog2Ha dog2Ha = new Dog2Ha();
dog2Ha.eat();
dog2Ha.sleep();
System.out.println("=============");
DogGolden dogGolden = new DogGolden();
dogGolden.eat();
dogGolden.sleep();
}
}
运行结果:
