java普通类、抽象类、接口、面向对象理解
1、面向对象编程:
面向对象编程的语言不止java一种,还有:
simula 67(第一个面向对象语言,支持单继承和一定含义的多态和部分动态绑定);
Smalltalk(第一个支持动态类型的语言,支持单继承、多态和动态绑定);
EIFFEL(支持多继承、多态和动态绑定);
C++(它的大部分基于类的特性继承自Simula。支持多继承、多态和部分动态绑定);
C#(也支持单继承,与Java和C++等有很多类似之处);
面向过程编程语言的典型代表:c语言。
不管是面向对象还是面向过程,都是将现实世界抽象出来,为了解决问题而形成的思维系统。
面向过程是指,我们考虑问题时,以一个具体的流程(事务过程)为单位,考虑它的实现:
面向对象是指,我们考虑问题时,以对象为单位,考虑它的属性及方法:
2、java类:
java类将属性和方法封装起来,一切都依赖于类及对象才可以实现调用。里面又分为普通类,抽象类和接口:
①接口:
1、接口中定义方法和属性;
可继承多个接口,可以用abstract修饰
2、方法只有声明,没有方法体;
3、属性默认为public static fianl的,且必须有初始化值;
4、java8中可以定义普通方法,也可以在接口中定义一个内部类,在内部类中定义普通方法
②抽象类:
可以有构造方法,不能实例化
2、抽象类可以继承抽象类,且只能继承一个;
抽象类也可以继承一个普通类;
3、可以定义普通方法,但必须有方法体;
4、属性可以没有初始化值
③普通类:
且只能继承一个普通类;
2、普通类可以被抽象类继承;
3、普通类能同时实现多个接口
基础语法强调理解,后面需要深刻理解面向接口编程思想。小编也会在后面单独写一篇关于接口的总结。
java普通类、抽象类、接口、面向对象理解的更多相关文章
- Java常用类、接口关系图谱
呕心沥血画出此图,希望在使用Java类.接口时捋顺其关系,从而更好的组织程序逻辑---请看图 Object分出来的类都是其子类 Iterable接口分出的也是子接口 从继承关系分析,其父类实现的接口子 ...
- Java基础——类与接口
一.类与接口的关系 1.类与类的关系 继承关系,只能单继承,不能多继承:但是可以多层继承 2.类与接口的关系 实现关系,可以单实现,也可以多实现,还可以继承一个类的同时实现多个接口 3.接口与接口的关 ...
- 10-01 Java 类,抽象类,接口的综合小练习--运动员和教练
运动员和教练的案例分析 运动运和教练的案例 代码实现 /* 教练和运动员案例 乒乓球运动员和篮球运动员. 乒乓球教练和篮球教练. 为了出国交流,跟乒乓球相关的人员都需要学习英语. 请用所学知识: 分析 ...
- java 继承类与接口问题
java 先extends 继承类,再implements 继承接口 public class DataBase extends ClassBase implements Ijiekou { }// ...
- Effective java -- 3 类和接口
第十三条:使类和成员的可访问性最小化 一个设计良好的模块会将实现细节隐藏起来,只将暴露API.模块之间调用并不知道对象的细节.这个概念成为信息隐藏或封装.要注意一点,设计的一个方法或者其他什么,只要不 ...
- Java学习笔记 抽象类 接口 多态
instanceof 对象名 instanceof 类名 该对象是否属于该类 Animal animal = new Dog(); if(animal instanceof Dog){ Dog d = ...
- JAVA笔记6__抽象类/接口/多态/instanceof关键字、父类设计法则
/** * 抽象类:很多具有相同特征和行为的类可以抽象为一个抽象类 * 1.抽象类可以没有抽象方法,有抽象方法的类必须是抽象类 * 2.非抽象类继承抽象类必须实现抽象方法[可以是空实现] * 3.抽象 ...
- java流类、、、理解不够,流太多不知怎么用好?
总结:输入流.输出流..子类多.需要加强: package com.da; import java.io.*; public class rtr { public static void main(S ...
- 论java虚拟类和接口的区别
如题:Abstract使数据成员虚拟化,而Interface则使方法成员虚拟化.
- java类,接口浅谈
一般类,抽象类,接口的使用场景: 类;共同的特征和行为的抽取和封装 接口:标准,规范(功能的扩展) 需要对某个类进行功能的扩展,就让某个类实现这个接口,抽取出来称为接口 内部类: ...
随机推荐
- Xmind8 (update8)破解教程
环境:Win7 一.下载xmind: Xmind版本:xmind-8-update8-windows.exe 百度云盘地址: https://pan.baidu.com/s/1ccd18E1hOY1 ...
- UVA-12166 Equilibrium Mobile(二叉树)
题目大意:改变二叉树上的权值,使树平衡,问最少该几个值. 题目分析:不会做,查的题解.有条奇妙的性质:如果将第d层权值为w的节点为基准做改动,则整棵树的总重量为w<<d,即w*2^d.仔细 ...
- 移动前端兼容性笔记 - 安卓2.x 自带原生浏览器箭头问题
这样的箭头用CSS-3实现,整段代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta c ...
- iOS 地图 通过经纬度计算两点间距离
- (double)calculateStart:(CLLocationCoordinate2D)start end:(CLLocationCoordinate2D)end { ; double st ...
- junit里面Test Case的执行顺序
这里讨论的是junit在ant运行的情况,其他build工具应该也适用,但具体没试验过. 首先运行junit时是按照脚本中文件夹的顺序执行,如下脚本会先执行test1目录下的测试,其实是test2目录 ...
- PHP中实用的模式之【门面模式】
author:胡旭个人博客 blog:http://www.ihuxu.com 欢迎关注~~~~ 对于一些逻辑稍微复杂的程序,很难避免出现在不某个类中无法访问 ...
- 如何优化tomcat配置优化
tomcat默认参数是为开发环境制定,而非适合生产环境,尤其是内存和线程的配置,默认都很低,容易成为性能瓶颈. tomcat内存优化 linux修改TOMCAT_HOME/bin/catalina.s ...
- 20145237《网络攻防》Web基础
基础问题回答 什么是表单: 表单是一个包含表单元素的区域.表单元素是允许用户在表单中输入信息的元素.表单在网页中主要负责数据采集功能. 浏览器可以解析运行什么语言: 超文本标记语言:HTML: 可扩展 ...
- Visual Studio2010 支持MVC4开发
最近的项目有一个维护的版本使用的是Visual Studio2010+MVC4开发的,记录一下软件的开发环境 ============================================= ...
- 《DSP using MATLAB》Problem 2.10
代码: %% ------------------------------------------------------------------------ %% Output Info about ...