java学习(6) java8 抽象类
来源:互联网 发布:怎么看数据库版本 编辑:程序博客网 时间:2024/06/16 15:28
最近学习过程中遇到了抽象类,和其紧密联系的还有抽象方法。
我们正常定义一个类是可以被实例化的,也就是用new关键字调用类的构造器来产生其实例。 但是抽象类是不能被实例化的,无法用new来产生实例。
抽象类可以包含成员变量、方法、构造器、初始化模块、内部类这些成分。但抽象类的构造器不能用于创建实例,主要用于被子类调用。
抽象类不能创建实例,只能当成父类被继承。
定义抽象方法只需在普通方法上增加abstract修饰符,并把普通法的方法体全部去掉,并在方法后增加分号即可。
定义抽象类只要在普通类上增加abstract 修饰符即可,甚至一个普通类(没有包含抽象方法的类)增加abstract修饰符后也会变成抽象类。
public abstract class Shape{ { System.out.println("执行Shape的初始化块..."); } private String color; // 定义一个计算周长的抽象方法 public abstract double calPerimeter(); // 定义一个返回形状的抽象方法 public abstract String getType(); // 定义Shape的构造器,该构造器并不是用于创建Shape对象, // 而是用于被子类调用 public Shape(){} public Shape(String color) { System.out.println("执行Shape的构造器..."); this.color = color; } // 省略color的setter和getter方法 public void setColor(String color) { this.color = color; } public String getColor() { return this.color; }}
public class Triangle extends Shape{ // 定义三角形的三边 private double a; private double b; private double c; public Triangle(String color , double a , double b , double c) { super(color); this.setSides(a , b , c); } public void setSides(double a , double b , double c) { if (a >= b + c || b >= a + c || c >= a + b) { System.out.println("三角形两边之和必须大于第三边"); return; } this.a = a; this.b = b; this.c = c; } // 重写Shape类的的计算周长的抽象方法 public double calPerimeter() { return a + b + c; } // 重写Shape类的的返回形状的抽象方法 public String getType() { return "三角形"; }}
阅读全文
0 0
- java学习(6) java8 抽象类
- java8.抽象类的应用
- JAVA学习.抽象类
- Java8(jdk8)接口与抽象类的区别
- 抽象类、接口(包括Java8新特性)
- Java学习:抽象类,抽象方法
- java学习(6)-继承,多态,抽象类以及接口
- 学习java-抽象类(Abstract class)
- Java学习笔记(抽象类)
- java学习笔记(高琪版)----抽象类
- JAVA学习之Java8日期
- JAVA学习之java8 optional
- JAVA学习之JAVA8 API
- 学习JAVA中的抽象类
- java学习总结-抽象类
- Java学习总结-抽象类
- 【java】抽象类的学习
- java abstract抽象类学习
- 微信小程序开发之吐司toast(消息提示框)
- plsql乱码
- CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)介绍
- js面向对象
- java异常
- java学习(6) java8 抽象类
- select 二级联动 之 匹配效率的提升
- Android App开发常用功能之用户头像选择
- python-pypdf2
- 开发工具——Android最漂亮的Logger日志打印工具
- 不容易系列之一
- java程序员成长之路
- nginx 实现反向代理负载均衡
- Mysql中用一个表更新另一个表