Java SE 第二十一讲----抽象类

本文介绍如何通过抽象类与子类继承来实现计算不同图形的面积功能,利用抽象方法与具体方法的结合,使得代码更加模块化且易于维护。以三角形和矩形为例,展示如何定义抽象类、实现抽象方法并在子类中具体化计算逻辑。

1.抽象类(abstract class):使用了abstract关键字修饰的类叫做抽象类,抽象类无法实例化,也就是说,不能new出来一个抽象类的对象。

2.抽象方法(abstract method):使用了abstract关键字修饰的方法叫做抽象方法,有声明无实现(没有花括号 public abstract void method();)

  抽象方法需要定义在抽象类中。相对于抽象方法,之前所定义的方法叫做具体方法(有声明,有实现)。

3.如果某个类是包含了抽象方法,那么这个类一定是抽象类。

4.如果某个类是抽象类,那么该类可以包含具体方法(有声明有实现)。

5.如果一个类中包含了抽象方法,那么这个类一定要声明成抽象类,也就是说,该类一定是抽象类,繁殖如果某个类是抽象类,那么该类就可以包含抽象方法跟具体方法。

6.无论何种情况,只要一个类是抽象类,那么这个类就无法实例化。

7.在子类继承父类(父类是个抽象类)的情况下,那么该子类必须要实现父类中所定义的所有的抽象方法,否则,该子类需要声明成一个abstract class

报错内容:The type R must implement the inherited abstract method T.method()

 

class R extends T
{

    @Override
    public void method() {
        // TODO Auto-generated method stub
        
    }
    
}
这样就好了

或者将R变成abstract类,但是就不能被实例化了

 

 

实例如下:计算图形的面积

 

 

package com.cl.abstracttest;

public class Test2 {
    public static void main(String[] args) {
        Shape t = new Triangle(2,4);
        int area = t.computArea();
        System.out.println("Triangle:"+area);//三角形
        t = new Rectangle(10,10);
        area = t.computArea();
        System.out.println("Rectangle:"+area);//矩形
    }

}


 abstract class Shape{
     public abstract int computArea();
     
}
 
class Triangle extends Shape{
    int width;
    int height;
    public Triangle(int width,int height){
        this.width  = width;
        this.height = height;
        
    }

    public int computArea() {
        
        return (width * height) / 2;
    }
    
}

class Rectangle extends Shape{
    int width;
    int height;
    public Rectangle(int width,int height){
        this.width  = width;
        this.height = height;
        
    }
    @Override
    public int computArea() {
        
        return width*height;
    }
    
}

 

转载于:https://www.cnblogs.com/dieyaxianju/p/5138650.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值