JAVA补充-抽象类

时间:2023-03-10 02:30:25
JAVA补充-抽象类

1.抽象类基本概念

 package com.neusoft.abstracted;
/**
* 抽象类:在class之前加abstract关键字
* 抽象方法语法: 修饰符 abstract 返回值类型 方法名(形参列表);
* 1.抽象方法的返回值前面有abstract关键字
* 2.抽象方法没有方法体
* 3.抽象方法的定义是一行单独的语句,,以分号结束。
* ===================================
* 4.一个类中如果定义了抽象方法,这个类一定是抽象类
* 5.抽象方法必须在抽象类中,但是抽象类中可以没有抽象方法
* 6.抽象类不能自己创建自己的对象,使用new创建抽象类对象将产生错误
* 7.子类继承抽象类的时候,应该覆盖抽象类中的所有方法,否则子类也必须定义为抽象类
*
*问题:定义一个类,使得其包含计算面积的方法,定义表示三角形的类Triangle和
*表示矩形的类Rectangle,分别继承上述的抽象类。
*/
public abstract class AbstractClassedDemo {
double width;
double height;
public AbstractClassedDemo(double w,double h) {
this.width=w;
this.height=h;
}
public abstract double getAera();
}

2.以矩形、三角形等为例分析抽象类

 package com.neusoft.abstracted;

 public class Rectangle extends AbstractClassedDemo{

     public Rectangle(double w, double h) {
super(w, h);
} @Override
public double getAera() {
return width*height;
} }

Rectangle矩形类

3.三角形

 package com.neusoft.abstracted;

 public class Trangle extends AbstractClassedDemo {

     public Trangle(double w, double h) {
super(w, h);
} @Override
public double getAera() {
// TODO Auto-generated method stub
return width*height/2;
} }

Trangle

4.测试代码

 package com.neusoft.abstracted;

 public class TestAbstract {
public static void main(String[] args) {
Trangle trangle = new Trangle(4, 6);
Rectangle rectangle = new Rectangle(4, 6); System.out.println("三角形"+trangle.getAera());
System.out.println("四边形"+rectangle.getAera());
}
}

TestAbstract

5.结果分析:

JAVA补充-抽象类