Java学习笔记——抽象类

abstract关键字
抽象方法:只有方法的声明没有方法的实现,以分号结束:abstract int abstractMethod(int a);
1.有抽象方法的类必须是抽象类
2.抽象类不能实例化,抽象类是作为父类被继承的,抽象类的子类必须重写父类的抽象方法,并提供方法体,若没有重写全部的抽象方法,仍为抽象类
只要类中有一个抽象的方法,那么这个类就必须是抽象类
3.不能用abstract修饰属性、私有方法、构造器、静态方法,final方法。

public abstract class Animal {
	public abstract void test();
	public abstract void move();
}

class Dog extends Animal{

	@Override
	public void test() {
	}

	@Override
	public void move() {
		System.out.println("狗的移动方式是跑");
	}
	
}
class Fish extends Animal{

	@Override
	public void test() {	
	}

	@Override
	public void move() {
		System.out.println("鱼的移动方式是游");
		
	}
	
}

abstract class Bird extends Animal{  //抽象类可以继承抽象类
	@Override
	public void move() {	
	}
	public abstract void test();//抽象类中只要有一个抽象方法,类就必须是抽象类
}

思考:
1.一个抽象类可以定义构造器吗
抽象类可以有构造方法,只是不能直接创建抽象类的实例对象而已
抽象类不能实例化,new Vinicle()是非法的

你可能感兴趣的:(JAVA,抽象类,多态,接口,类)