对封装、抽象、继承、多态的理解?(java四大特性)
来源:互联网 发布:计算机病毒预防软件 编辑:程序博客网 时间:2024/06/07 23:32
封装是把过程和数据包围起来,对数据的访问只能通过自定义的接口,这个可以保护里面的数据和结构不被修改。
继承是实现代码复用的重要手段,Java的继承具有单继承的特点,每一个子类只允许有一个父类。通过继承子类就可以拥有父类的部分属性(私有属性除外)。
抽象是概念上的同一事物的共有属性或者方法的集合,比如抽象出一个人类,车类。抽象可以说是多态的基础。
多态是程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而在程序运行时才能具体知道变量指向哪一个类,该引用变量的方法具体指向哪个类中的方法。因为在程序运行时才能确定具体的类,这样不用修改源程序代码,就可以让引用绑定到各种不同类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态。(需要扩展了解一下)
下面我举一个栗子,阐述一下我的理解,比如现在定义了一个Person类,这只是一个抽象类
public abstract class Person{public abstract void goWC();}
现在这个抽象类只是把人去厕所这个抽象方法提了出来,但是抽象是没有用的,我们需要给他具体的实现,当今世界上只有两个性别,男人,女人,好像现在不能这么说了,那就是搞三个性别吧,男人,女人,人妖。hhh,我们来进行具体实现
public class Man extends Person { @Override public void goWc() { System.out.println("sit up"); }}public class Woman extends Person{ @Override public void goWc() { System.out.println("sit down"); }}public class Yao extends Person { @Override public void goWc() { System.out.println("这是一个谜"); }}
让我们来看一下结果吧!
public static void main(String[] args) { ArrayList<Person> list=new ArrayList<Person>(); list.add(new Man()); list.add(new Woman()); list.add(new Yao()); for (Person person : list) { person.goWc(); } }
运行结果:
sit up
sit down
这是一个谜
是不是很清真,也验证了不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态这个特性,上面还有抽象继承的思想在里面,用一个栗子解决三大特性。
1 0
- 对封装、抽象、继承、多态的理解?(java四大特性)
- java四大特性理解(封装继承多态抽象)
- java四大特性理解(封装继承多态抽象)
- java面向对象的四大特性-多态,继承,抽象,封装
- Java基础 对封装、继承、多态、抽象的理解
- 对封装、继承、多态、抽象的理解
- 对封装、继承、多态、抽象的理解
- (新人)关于自己对java的继承、封装、抽象类和接口的理解
- 对Java的四大特性的理解
- 对抽象,继承,多态的理解
- Java四大特征(抽象、封装、继承、多态)
- 面相对象的抽象、封装、继承、多态的理解
- 谈谈我对封装,继承,抽象类,接口的理解
- 对封装 继承 抽象类和接口的理解
- 对封装,继承,抽象类和接口的理解
- 对封装,继承,抽象类和接口的理解
- 我对Java中的封装,继承,抽象类和接口的理解。
- java 面向对象三大特性(封装,继承,多态)以及抽象、接口的介绍
- hdu 1052 田忌赛马(贪心)
- 初始JSP表达式语言-EL
- 1002. 写出这个数 (20)
- AngularJS 深入理解 $scope
- 第六天:串口通信概念、原理
- 对封装、抽象、继承、多态的理解?(java四大特性)
- UML的基本元素
- 基本概念和古典概型
- 3的次幂
- POJ 2155 Matrix
- Android 自定义View实现照片裁剪框与照片裁剪
- MySQL绿色版在windows部署方案
- java的设计模式——工厂
- [Spring]<context:annotation-config/>注册的BeanPostProcessor