Java 抽象类和抽象方法

  • 抽象类是它的所有子类的公共属性的集合,是包含一个或多个抽象方法的类。
  • 使用抽象类可以充分利用这些公共属性来提高开发和维护程序的效率。
  • 抽象方法必须为public或protected。(因为如果是private,则不能被子类继承,子类无法实现该方法)抽象方法没有方法体。
  • 抽象类和抽象方法用abstract修饰。
  • 子类如果不是抽象类,则必须重写抽象类中的全部抽象方法。如果子类没有实现父类的抽象方法,必须将子类也定义成抽象类。
  • 抽象类不能用final关键字声明,因为抽象类必须有子类,但是final定义的类不能有子类。
  • 抽象类不能直接实例化,需要依靠子类向上转型的方式实例化。
public abstract class Animal {//抽象类Animal要用abstract关键字声明。public abstract void shout();//抽象方法没有方法体,用abstract修饰。
}
public class Dog extends Animal {//子类继承抽象类public void shout() {//Dog子类不是抽象类,必须重写抽象类中全部抽象方法。System.out.println("汪汪汪");}
}
public class Test {public static void main(String[] args) {// TODO Auto-generated method stubAnimal a1 = new Dog();//抽象类不能直接实例化,需要依靠子类向上转型的方式实例化。Animal a1 = new Animal()报错a1.shout();//a1拥有了Dog类重写的shout方法。}
}

抽象类和普通类的区别:

  • 抽象类比普通类多了一些抽象方法,其他组成部分和普通类完全一样。
  • 普通类对象可以直接实例化,抽象类对象必须向上转型之后才可实例化。
  • 子类继承抽象类,子类需要重写方法。但是子类继承普通类,子类可以有选择地决定是否需要重写方法。
//抽象类实例:
public abstract class Shapes {public abstract double getArea();public abstract double getPerimeter();
}
public class Circle extends Shapes {double r;public Circle(double r) {//构造函数this.r = r;}public double getArea() {return r*r*Math.PI;}public double getPerimeter() {return 2*Math.PI*r;}
}
public class Square extends Shapes{int width;int height;public Square(int width, int height) {//构造函数this.width = width;this.height = height;}public double getArea() {return width*height;}public double getPerimeter() {return 2*(width + height);}
}
public class Test {public static void main(String args[]) {Circle c1 = new Circle(1.0);System.out.println("圆形面积为 " + c1.getArea());System.out.println("圆形z周长为 " + c1.getPerimeter());Square s1 = new Square(1,1);System.out.println("正方形面积为 " + s1.getArea());System.out.println("正方形周长为 " + s1.getPerimeter());}
}
/*
圆形面积为 3.141592653589793
圆形z周长为 6.283185307179586
正方形面积为 1.0
正方形周长为 4.0
*/

Java 抽象类和抽象方法相关推荐

  1. Java抽象类和抽象方法

    Java抽象类和抽象方法 参考博客: Java抽象类和抽象方法 java提高篇(五)-–抽象类与接口 抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类. 抽象类有点类似"模 ...

  2. 二十四、深入Java抽象类,抽象方法和接口

    @Author:Runsen @Date:2020/5/31 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排 ...

  3. java抽象类与抽象方法详解+练习题

    抽象类与抽象方法 一.为什么使用抽象方法和抽象类 二.抽象方法 抽象方法指一些只有方法声明,而没有具体方法体的方法. 结构 abstract class 类名称 // 定义抽象类 {声明数据成员;访问 ...

  4. Java抽象类与抽象方法

    抽象:abstract    是具体的反义词    和模糊,不确定,不清晰有的类似       1.什么情况下会用到抽象?    当我们在声明一个父类时,某个/些方法的实现不清楚,或者说无法给出具体的 ...

  5. Java 抽象类和抽象方法的使用

    抽象类 关键字:abstract 概述:         使用abstract关键字修饰的类就是抽象类 特点: 抽象类不能创建对象,主要是来给子类继承的 抽象类和普通类的区别: 1.普通类可以创建对象 ...

  6. java 编写抽象类Animal,JAVA 抽象类,抽象方法

    抽象类其实就是给他的所有子类定义了一套模板.子类可以在这个模板上进行扩展. 通过抽象类,可以严格的限制了子类的设计. 如一个抽象类Animal中有一个抽象方法run. public class Ani ...

  7. java 定义抽象变量_Java抽象类和抽象方法定义与用法实例详解

    本文实例讲述了Java抽象类和抽象方法定义与用法.分享给大家供大家参考,具体如下: 一.Java抽象类 1.抽象类的说明 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都 ...

  8. JAVA基础13-Java抽象方法、抽象类、抽象之模板方法模式

    文章目录 Java抽象方法和抽象类 抽象之模板方法模式 Java抽象方法和抽象类 抽象类: Java中可以定义没有方法体的方法,该方法由子类来具体实现.这个没有方法体的方法我们称之为抽象方法,含有抽象 ...

  9. java中的抽象类和抽象方法

    知识点:java中的抽象类和抽象方法 关键字abstract意为抽象的,可以用来修饰类和方法,分别称作抽象类和抽象方法 抽象类一般在多态的场景中使用 一:抽象类(abstract class) 在类的 ...

最新文章

  1. cassandra集群环境搭建——注意seeds节点,DHT p2p集群管理难道初始化都应如此吗?...
  2. 【深度学习】陶大程等人编写!最新41页深度学习理论综述
  3. Nginx的rewrite之return指令
  4. c++语言 tcp例子,C++中TCP通信实现文件传输
  5. java mac pos_pos终端mac国密(sm4)算法(java实现)
  6. AI学习笔记(三)特征选择与提取、边缘提取
  7. 私有云落地解决方案之网络篇-网络架构
  8. 论文导读 | 图上的可达性问题
  9. G - 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
  10. 关于年薪百万,聊聊年薪380万的研发人是什么样子的
  11. 绑架、做空、造假…是谁搞垮了曾经的“网红公司”网秦?
  12. python django(1170, BLOB/TEXT column 'name' used in key specification without a key length)
  13. 第七届校长邦“榜样的力量教育盛典”召开 掌门教育荣膺年度“影响力教育品牌”
  14. ctfshow摆烂杯
  15. 这可能是我学习计算机以来的全部总结和收获
  16. MySQL查询所有子文件目录_使用File类的listFiles方法输出d盘根目录下的所有子目录和文件的完整路径名以及文件的字节数。写出相应代码。...
  17. java 一秒可以循环多少次
  18. 航空软件静态测试标准,静态试验
  19. python金融分析小知识(14)——matplotlib多子图绘制(结合股票收盘价数据)
  20. 电脑桌面日历云便签怎么通过日历查看节假日和农历节气?

热门文章

  1. 第六章 计算机性能测试
  2. Vuetable-2使用全纪录
  3. ssh远程执行命令 linux,【Linux】SSH 远程执行命令
  4. 最小值c语言 循环,C语言循环结构 -C语言求全班同学身高的最大值和最小值
  5. css设置按钮竖直方向居中_如何借助伪元素实现垂直居中?
  6. python random函数_详细代码实战讲解:如何用 Python让自己变成天选之子
  7. python写一个路径选择app_django下创建多个app并设置urls方法
  8. Win11右键刷新怎么恢复 Win11右键刷新恢复教程分享
  9. Edge使用手机版切换到电脑模式的方法
  10. 2345王牌浏览器网页加载慢怎么办 网页加载慢解决办法