java学习(6) java8 抽象类
2017-07-21 17:07
369 查看
最近学习过程中遇到了抽象类,和其紧密联系的还有抽象方法。
我们正常定义一个类是可以被实例化的,也就是用new关键字调用类的构造器来产生其实例。 但是抽象类是不能被实例化的,无法用new来产生实例。
抽象类可以包含成员变量、方法、构造器、初始化模块、内部类这些成分。但抽象类的构造器不能用于创建实例,主要用于被子类调用。
抽象类不能创建实例,只能当成父类被继承。
定义抽象方法只需在普通方法上增加abstract修饰符,并把普通法的方法体全部去掉,并在方法后增加分号即可。
定义抽象类只要在普通类上增加abstract 修饰符即可,甚至一个普通类(没有包含抽象方法的类)增加abstract修饰符后也会变成抽象类。
我们正常定义一个类是可以被实例化的,也就是用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 "三角形"; } }
相关文章推荐
- java学习(七)java中抽象类及 接口
- Java学习系列(五)Java面向对象之抽象类、接口、内部类、枚举类详解
- Java学习系列(五)Java面向对象之抽象类、接口、内部类、枚举类详解
- Java学习系列(五)Java面向对象之抽象类、接口、内部类、枚举类详解
- Java Head First 第8章 接口与抽象类
- 【Java学习笔记】10.继承、抽象类、接口
- java学习笔记之抽象类和接口
- Java基础---抽象类和接口
- Java核心技术之抽象类和接口
- 关于Java中的接口和抽象类的区别
- 0902 Java 抽象类经典例子1
- 抽象类与接口的异同浅谈,Java编程中的包含关系
- Java 抽象类和接口的区别
- 0904 Java 抽象类经典例子3
- Java中的接口与抽象类的比较、应用和实例 – 一个培训师不错的简洁解述
- 学JAVA必须知道:抽象类与接口的区别
- Java 抽象类abstract
- 10_Java面向对象_第2天(继承、抽象类)
- java 中的抽象类
- java 接口和抽象类 区别