java中抽象类的粗浅理解

本文详细介绍了抽象类的概念,包括其定义、特点及如何使用抽象类与抽象方法进行高级别抽象,以统一实现一组对象的行为。通过具体实例展示了抽象类在不同场景下的应用,如形状类的抽象,以及如何通过继承实现具体类并提供具体行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

抽象类:
用abstract修饰的类,就是抽象类,抽象类也是类的一种,能被继承。
    抽象类,不能进行实例化,就是说不能通过new操作。
    抽象类中可以包含抽象方法和有具体实现的方法。
   
抽象方法:
用abstract修饰的方法,就是抽象方法。抽象方法必须定义在抽象类中,但是抽象类中,不一定全部都是抽象方法。抽象方法不用有实现。
    抽象类的继承有2种情况:
    1、抽象类继承抽象类:即子类也是抽象类(用abstract修饰),这时子类可以选择实现父类中的抽象方法,也可以不去实现,但是有一点没有变化,就是子类也不能实例化(不能new操作)。
    2、非抽象类继承抽象类:这时子类必须实现父类中的全部抽象方法,子类可以被实例化(能new操作)。
   
抽象类的应用意义:
抽象类的出现,在于建立一种约定的机制。约定的机制通过抽象方法来实现,由实现子类进行方法的实现。说白了就是对一组对象(类)进行高层级的抽象,形成一个高层级抽象类,通过这个高层级的抽象类,来约定这组对象的行为。例如下面的实例,对三角形、矩形,当然可以有更多的形状,进行高层级的抽象,即形状。通过抽象类(形状),来约定所有子类都必须提供周长的方法。
实例代码如下:
package java.HighCode;

abstract class Shape {
	abstract float perimeter();
}

class Triangle extends Shape {
	
	float side1;
	float side2;
	float side3;
	
	float perimeter(){
		return side1+side2+side3;
	}
}

class Rectangle extends Shape{
	float side1;
	float side2;
	float side3;
	float side4;
	
	float perimeter(){
		return side1+side2+side3+side4;
	}
}

public class AbstractT {

	public static void main(String[] args) {
		
		Triangle triangle = new Triangle();
		triangle.side1 =1;
		triangle.side2 =2;
		triangle.side3 =3;
		System.out.println("三角形的周长为:"+triangle.perimeter());
		
		Rectangle rectangle = new Rectangle();
		rectangle.side1 =1;
		rectangle.side2 =1;
		rectangle.side3 =1;
		rectangle.side4 =1;
		System.out.println("矩形的周长为:"+rectangle.perimeter());
		
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值