1. 面向对象三大特性:封装,继承,多态
封装
-
概念:把类的某些信息私有化隐藏起来,外部不能直接访问,而是通过该类提供的方法来实现对这些隐藏信息的访问和操作。
-
好处:
-
只能通过规定的方法来访问私有数据
-
隐藏类的内部实例细节,方便修改和实现。
继承
在已有类的基础上添加新的数据或方法。“is-a” 关系是继承的一个明显特征。
-
子类拥有父类所有的属性和方法(包括私有属性和私有方法),但是父类中的私有属性和方法子类无法访问,只是拥有。(好处:实现了代码复用)
-
子类可以拥有自己的属性和方法,即对父类进行扩展。
-
子类可以用自己的方式实现父类的方法(重写)
所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定。
在Java中有两种形式可以实现多态:
-
继承(多个子类对同一方法的重写)
-
接口(实现接口并覆盖接口中同一方法)
一个三大特性讲解得很详细的博客:JAVA面向对象三大特性详解
2. Java 和C++的区别
-
(相同点)都是面向对象的语言,都支持封装、继承和多态
-
Java不提供指针来直接访问内存,程序内存更加安全。C++中有指针,但Java中有引用
-
Java的类是单继承的,C++支持多重继承;虽然Java的类不可以多继承,都是接口可以多继承
-
Java有自动内存管理机制,不需要程序员手动释放无用内存
-
Java是解释型语言:源码会先经过一次编译,成为中间码,中间码再被解释器解释成机器码。字节码(.class)就是中间码,而解释器在JVM中内置了。 C++是编译型语言,源码一次编译,直接在编译的过程中链接了,形成了机器码。
来源:https://www.cnblogs.com/l999q/p/12266956.html