Java-抽象类详解

目录

1、抽象类基本概念

2、抽象类语法

3、抽象类特性

4、抽象类和普通类之间的关系


1、抽象类基本概念

        在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

        如果一个方法中没有具体的实现内容,我们可以把该方法设计为一个抽象方法(abstract method),包含抽象方法的类就叫做抽象类(abstract class)

注意:

1、包含抽象方法的类,必须也拿abstract修饰。此时这个类叫做抽象类。

2、抽象类不能被实例化。

3、如果一个普通类继承了抽象类,则必须重写抽象类中的抽象方法。

2、抽象类语法

        在Java中,一个类如果被abstract修饰为抽象类,抽象类中被abstract修饰的方法称为抽象方法,抽象方法不用给出具体的实现体 。

//抽象类 被abstract修饰的类
public abstract class Shape {
	//抽象方法 被abstract修饰的方法
	abstract public void draw();
	abstract void calcArea();
	
	//在抽象类中可以添加普通方法和普通属性
	public double x;
	public double getX() {
		return x;
	}
}

注意:抽象类也是类,在抽象类中可以添加普通方法和普通属性。

3、抽象类特性

1、抽象类不能被实例化

Shape shape = new Shape();         //这样子会编译错误。Shape是抽象的,无法实例化

2、抽象方法不能是private的

abstract class Shape {
    abstract private void draw();
}

//编译出错

3、抽象方法不能被 final 和 static,因为抽象方法要被子类重写

abstract class Shape {
    abstract final void draw();
    abstract static void play();
}

//编译出错

4、抽象类必须被继承,并且继承后子类要重写父类中的抽象方法,否则子类也是抽象类,必须用abstract修饰

5、抽象类中不一定包含抽象方法,但是有抽象方法的类一定是抽象类

6、抽象类中可以有构造方法,供子类创建对象时,初始化父类的成员变量

4、抽象类和普通类之间的关系

1、普通类和抽象类一样,有成员方法 ,成员变量,抽象类比普通类多了抽象方法。

2、抽象类和普通类之间最大的区别就是,抽象类不能被实例化!

3、普通类继承抽象类,就必须重写抽象类中的抽象方法。


以上就是 Java-抽象类详解 的全部内容了,希望能对你有所帮助!

你可能感兴趣的:(Java,java,开发语言,学习,数据结构)