1、定义一个代表“形状”的抽象类,其中包括求形状面积的抽象方法。继承该抽象类定义三角型、矩形、圆。分别创建一个三角形、矩形、圆存入一个数组中,访问数组元素将各类图形的面积输出。
public class Test1 {
public static void main(String[] args) {//主方法
Triangle s1=new Triangle(30, 40, 50);//创建三角形对象
Rectangle s2=new Rectangle(10,20);//创建矩形对象
Circle s3=new Circle(15);//创建圆形对象
Shape arr[]={s1,s2,s3};//创建形状对象数组
for(int i=0;i arr[i].area();//调用方法 } } abstract class Shape{//形状的抽象类 abstract void area();//定义抽象方法 } class Triangle extends Shape{//三角形的类,继承抽象类 double a;//定义成员变量,三条边 double b; double c; public Triangle(double a,double b,double c){//定义构造函数,分别给三条边赋值 this.a=a; this.b=b; this.c=c; } public void area(){//计算面积 double p = (a + b +c) / 2;//海伦公式 double s=Math.sqrt(p * (p – a) * (p- b) * (p- c)); System.out.println(“三角形的面积为:”+s);//打印 } } class Rectangle extends Shape{//矩形的类,继承抽象类 double width;//定义成员变量,高和宽 double height; public Rectangle(double width, double height) {//定义构造函数,分别给高和宽赋值 this.width = width; this.height = height; } public void area(){//计算面积 double s=width*height; System.out.println(“矩形的面积为:”+s);//打印 } } class Circle extends Shape{//圆的类,继承抽象类 double r;//定义成员变量,半径r public Circle(double r){//定义构造函数,给半径赋值 this.r=r; } public void area(){//计算面积 double s=Math.PI*r*r; System.out.println(“圆的面积为:”+s);//打印 } } 2、定义一个代表“形状”接口,其中包括求形状面积的抽象方法。 · 定义三角型、矩形、圆实现该接口。 · 分别创建一个三角形、矩形、圆存入一个数组中, · 访问数组元素将各类图形的面积输出。 public class Test2 { public static void main(String[] args) {//主方法 Triangle1 s1=new Triangle1(20, 30, 40);//创建三角形对象 Rectangle1 s2=new Rectangle1(20,50);//创建矩形对象 Circle1 s3=new Circle1(50);//创建圆形对象 Shape1 arr[]={s1,s2,s3};//创建形状对象数组 for(int i=0;i arr[i].area();//调用方法 } } /* 因为与第一题所创建的类名一样,会 错,所以在类名和接口的名字后面加了一个1. */ interface Shape1{//形状的接口 void area();//定义方法 } class Triangle1 implements Shape1{//创建三角形的类,继承接口 double a;//定义成员变量,三角形的三条边 double b; double c; public Triangle1 (double a,double b,double c){//定义构造函数,分别给三条边赋值 this.a=a; this.b=b; this.c=c; } public void area(){//计算面积 double p = (a + b +c) / 2;//海伦公式 double s=Math.sqrt(p * (p – a) * (p- b) * (p- c)); System.out.println(“三角形的面积为:”+s);//打印 } } class Rectangle1 implements Shape1{//创建矩形的类,继承接口 double width;//定义成员变量,高和宽 double height; public Rectangle1 (double width, double height) {//定义构造函数,分别给高和宽赋值 this.width = width; this.height = height; } public void area(){//计算面积 double s=width*height; System.out.println(“矩形的面积为:”+s);//打印 } } class Circle1 implements Shape1{//创建园的类,继承接口 double r;//定义成员变量,半径 public Circle1 (double r){//定义构造函数,给半径赋值 this.r=r; } public void area(){//计算面积 double s=Math.PI*r*r; System.out.println(“圆的面积为:”+s);//打印 } } 3、定义一个抽象类-水果,其中包括getWeight()方法,编写程序分别创建苹果、桃子、橘子三个类,创建若干水果对象存放在一个水果类型的数组中,输出数组中所有水果的类型、重量。提示:利用对象的getClass().getName()方法可获取对象的所属类的名称。 public class Test3 { public static void main(String[] args) {//主方法 Apple s1=new Apple(10);//创建苹果的对象 Peach s2=new Peach(20);//创建桃子的对象 Orange s3=new Orange(30);//创建橘子的对象 Fruits arr[] ={s1,s2,s3};//创建水果对象数组 for(int i=0;i System.out.print(arr[i].getClass().getName()+”,重量为:”+arr[i].getWeight()); //打印类名和水果重量 System.out.println();//换行 } } } abstract class Fruits {//创建水果抽象类 abstract double getWeight();//定义方法 } class Apple extends Fruits {//创建苹果类,继承水果 double weight;//定义成员变量,重量 public Apple (double weight){//定义构造函数,给重量赋值 this.weight=weight; } public double getWeight() {//获取重量的方法 return weight;//返回重量 } } class Peach extends Fruits {//创建桃子类,继承水果 double weight;//定义成员变量,重量 public Peach (double weight){//定义构造函数,给重量赋值 this.weight=weight; } public double getWeight() {//获取重量的方法 return weight;//返回重量 } } class Orange extends Fruits {//创建橘子类,继承水果 double weight;//定义成员变量,重量 public Orange (double weight){//定义构造函数,给重量赋值 this.weight=weight; } public double getWeight() {//获取重量的方法 return weight;//返回重量 } } 文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树行为抽象和Lambda流和行为抽象91537 人正在系统学习中 声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!