抽象类
不可以被实例化,可以有构造方法。
抽象类不一定包含抽象方法,当一个类包含了抽象方法,该类就是抽象类。抽象类和抽象方法一样,必须使用abstract修饰。
语法格式:abstract class 抽象类名称{}
访问权限 abstract 返回值类型 抽象方法名称(参数);
抽象方法的子类:要么重写抽象方法中的所有抽象方法,要么是抽象类。
【课本原话如下】
抽象类的定义:
1.包含了抽象方法,该类就是抽象类
2.声明抽象类和抽象方法时都要使用abstract关键字修饰。
3.抽象方法只需要声明而不需要实现。(抽象方法不能写方法体)
4.如果一个非抽象类继承了抽象类之后,那么该类必须重写抽象类中的全部抽象方法。
接口:
接口关键字声明,语法格式:
public interface 接口名 extends 接口1,接口2,接口3,·····{ }
一个接口可以有多个父接口,父接口之间以逗号分隔。接口中的变量默认使用public static final进行修饰,即全局变量。接口中定义的抽象方法默认使用public abstract进行修饰。
接口本身不能被实例化,接口中的抽象方法和默认方法只能通过接口实现类的实例对象进行调用。实现类通过implements关键字实现接口,并且实现类必须重写接口中所有的抽象方法。
定义接口实现类,语法格式:
修饰符 class 类名 implements 接口1,接口2,······{ }
接口实现类必须实现接口中的所有抽象方法。
一、实验题目
1.设计一个Shape接口和它的两个类Square和Circle,要求如下:
(1)Shape接口中有一个抽象方法area(),方法接收一个double类型的参数,返回一个double类型的结果。
(2)Square和Circle中实现了Shape接口的area() 抽象方法,分别求正方形和圆形面积并返回。
(3)在测试类中创建Square和Circle对象,计算边长为2的正方形面积和半径为3的圆的面积。
2.教材P144 第五大题(答案略,具体看代码文件Experience)
二、解题代码
第一题
接口重点复习本题
// 定义Shape接口
interface Shape {
double area(double value);//接口的抽象方法可以接收变量作为参数
//接口的抽象方法没有方法体
}
// 正方形类实现Shape接口
class Square implements Shape {
@Override
public double area(double sideLength) {
return sideLength * sideLength; // 正方形面积 = 边长 * 边长
}
}
// 圆形类实现Shape接口
class Circle implements Shape {
@Override
public double area(double radius) {
return Math.PI * radius * radius; // 圆形面积 = π * 半径 * 半径
}
}
// 测试类
public class Main {
public static void main(String[] args) {
// 创建正方形和圆形对象
Shape square = new Square();
Shape circle = new Circle();
// 计算正方形和圆形的面积
double squareArea = square.area(2); // 边长为2的正方形
double circleArea = circle.area(3); // 半径为3的圆
// 输出结果
System.out.println("正方形面积: " + squareArea);
System.out.println("圆的面积: " + circleArea);
}
}
说明:复习内容基于本人实际学习情况,发布文章仅用于记录。如有错误,欢迎纠正。
实验7
565

被折叠的 条评论
为什么被折叠?



