JAVA补充-抽象类

1.抽象类基本概念

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

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

 1 package com.neusoft.abstracted;
 2 
 3 public class Rectangle extends AbstractClassedDemo{
 4 
 5     public Rectangle(double w, double h) {
 6         super(w, h);
 7     }
 8 
 9     @Override
10     public double getAera() {
11         return width*height;
12     }
13 
14 }
Rectangle矩形类

3.三角形

 1 package com.neusoft.abstracted;
 2 
 3 public class Trangle extends AbstractClassedDemo {
 4 
 5     public Trangle(double w, double h) {
 6         super(w, h);
 7     }
 8 
 9     @Override
10     public double getAera() {
11         // TODO Auto-generated method stub
12         return width*height/2;
13     }
14 
15 }
Trangle

 4.测试代码

 1 package com.neusoft.abstracted;
 2 
 3 public class TestAbstract {
 4     public static void main(String[] args) {
 5         Trangle trangle = new Trangle(4, 6);
 6         Rectangle rectangle = new Rectangle(4, 6);
 7         
 8         System.out.println("三角形"+trangle.getAera());
 9         System.out.println("四边形"+rectangle.getAera());
10     }
11 }
TestAbstract

5.结果分析:

原文地址:https://www.cnblogs.com/jackchen-Net/p/6524555.html