美文网首页
JJJJJava抽象类

JJJJJava抽象类

作者: 南在南方i | 来源:发表于2019-08-12 20:10 被阅读0次

抽象类 abstract

必须使用关键字abstract修饰
抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象

抽象类存在的意义

1.因为抽象类不能实例化对象,所以必须要有子类来实现它之后才能使用。这样就可以把一些具有相同属性和方法的组件进行抽象,这样更有利于代码和程序的维护。
比如本科和研究生可以抽象成学生,他们有相同的属性和方法。这样当你对其中某个类进行修改时会受到父类的限制,这样就会提醒开发人员有些东西不能进行随意修改,这样可以对比较重要的东西进行统一的限制,也算是一种保护,对维护会有很大的帮助。
2.当又有一个具有相似的组件产生时,只需要实现该抽象类就可以获得该抽象类的那些属性和方法。
比如学校又新产生了专科生这类学生,那么专科生直接继承学生,然后对自己特有的属性和方法进行补充即可。这样对于代码的重用也是很好的体现。

  • 抽象类自身不能创建对象,但是它的子类可以创建对象
  • 抽象方法没有方法体(即没有“{}”)
  • 抽象方法必须定义在抽象类中
  • 在父类中定义的抽象方法,在子类中必须实现(即方法重写)
    public abstract void studyC();
  • 抽象类中的构造方法
    由于抽象类里会存在一些属性,那么抽象类中一定存在构造方法,其存在目的是为了属性的初始化。
    并且子类对象实例化的时候,依然满足先执行父类构造,再执行子类构造的顺序

小训练(抽象类与继承-长方形的面积与周长)

package demo;


public class Test {
    public static void main(String[] args){
        //new一个对象 进行赋值
        Way w = new Way(20,30);
        
        //进行调用
        w.perimeter();
        w.area();
    }
}


abstract class Rectangle{
    //定义长度和宽度
    int length;
    int wide;
    
    //有参构造方法进行赋值
    public Rectangle(int length,int wide){
        this.length = length;
        this.wide = wide;
    }

    //周长抽象类
    public abstract void perimeter();

    //面积抽象类
    public abstract void area();

}

//继承
class Way extends Rectangle{
    
    //继承父类的参数
    public Way(int length,int wide){
        super(length,wide);
    }
    
    //实现抽象类中的方法
    public void perimeter(){
        int perimeter = (length+wide)*2;
        System.out.println("perimeter:"+perimeter);
    }

    public void area(){
        int area = length*wide;
        System.out.println("area:"+area);
    }
}

PS.

  • 今天学习的抽象类不是特别抽象,接口也很好懂,但是在写一个比较大型的demo中比较吃力,没有思路,只能机械的跟随着敲,最后只是将代码敲了一遍过了过手。但我发现在每堂课对应的知识点去寻找一些比较小的有针对性的demo进行练手后对知识的理解有显著性上升,并且可以慢慢的将一个比较小的demo逐渐一步步的进行扩展,也让我有了学习的动力,来日可期
  • 今日上课demo能懂得其大部分意思后再单独发出

相关文章

  • JJJJJava抽象类

    抽象类 abstract 必须使用关键字abstract修饰抽象类往往用来表征对问题领域进行分析、设计中得出的抽象...

  • JJJJJava线程

    进程 :正在运行的一个程序 系统会为这个进程分配独立的内存资源 线程 :集体执行任务的最小单位 一个进程最少拥有一...

  • JJJJJava集合

    集合与数组的区别 Collection集合的方法 常用集合的分类 Collection 接口的接口 对象的集合(单...

  • JJJJJava接口

    接口 interface Java接口是一系列方法的声明,是一些方法特征的集合一个接口只有方法的特征没有方法的实现...

  • JJJJJava异常处理

    异常机制已经成为判断一门编程语言是否成熟的标准,异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更...

  • JJJJJava-Map

    Java中的map是一个很重要的集合,他是一个接口,下面继承它实现了多个实现类,这些类各有千秋,各自有个各自的优点...

  • JJJJJava-ArrayList

    ArrayList类是一个特殊的数组。通过添加和删除元素,就可以动态改变数组的长度 泛型 泛型的本质是参数化类型,...

  • JJJJJava-socket通信

    网络编程主要问题 如何准确的定位网络上一台或多台主机 找到主机后如何可靠高效的进行数据传输在TCP/IP协议中IP...

  • js.pattern -h 模板方法模式

    基于复用技术、抽象类-->继承抽象类 创建抽象类 实现抽象类

  • Dart中的抽象类 多态 以及接口

    抽象类 Dart中抽象类: Dart抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象类接口。 1、抽象类...

网友评论

      本文标题:JJJJJava抽象类

      本文链接:https://www.haomeiwen.com/subject/yjkpjctx.html