JAVA-抽象类和普通类

概述

在JAVA中,如果一个类用abstract关键字修饰,我们通常把它称为抽象类。

类,我们可以把它理解为类型,现实中我们用类型描述具有共性的事物,例如生物,生物中有动物,动物中有狗。

假如我们创建了一个生物类时,我们不能通过创建对象获取具体的狗的信息(种类,姓名等),像这种指向性更广泛的只描绘了多种事物公共属性的类,就是抽象类。

而普通类就是具体的实例对象。

JAVA中(abstract)抽象类案例如下图

//抽象类
public abstract class Pet {
	
}
//子类:猫
class Cat extends Pet{
	
}
//子类:狗
class Dog extends Pet{
	
}

 一.抽象类

1.语法:使用Abstract关键字修饰

 可以定义常量; 可以定义抽象方法;  可以定义构造方法;可以定义普通方法

案例如下:

public abstract class AbstractClass {
	//常量
	public static final int MAX=251;
	//构造方法
	public AbstractClass() { /*....*/}
	//抽象方法
	public abstract void dosth();
	//普通方法
	public void work(){/*.....*/}

}

2.实例化:无法实例化调用,就是用new指向构造方法创建对象,因为它的指向太广泛,没有具体实例。

3.抽象方法:可以定义抽象方法,有抽象方法的类一定是抽象类,子类必须实现父类的抽象方法

抽象方法用abstract修饰,没有方法体

4.抽象类的访问权限仅限于是public/protected,因为抽象类的抽象方法必须被子类实现

5.继承: 抽象方法没有方法体,且必须被子类继承,所以抽象方法相当于为子类制定了“规范”

//抽象类
public abstract class Pet {
	//抽象方法
	public abstract void eat();
	
}
//子类:猫
class Cat extends Pet{
	//子类必须实现父类Pet的抽象方法eat()
	public void eat() {
		System.out.println("猫吃:鱼,猫条,冻干......");
	}
}
class Dog extends Pet{
	public void eat() {
		System.out.println("狗吃:狗粮,骨头,肉");
	}
}

你可能感兴趣的:(java,开发语言)