【Java的三个特性】

三大特性(封装、继承、多态)

1. 继承(extends

  继承:基类和派生类是父子关系,超类和子类也是父子关系,父类中类方法不会被继承,属于super关键字所拥有。

 

2.、多态  :包括重载和重写

重载是本类中方法的多态,调用方法时通过传递给方法的不同参数(参数个数、参数类型)来确定具体使用哪个方法。(向上转型,编译看左边,决定哪些方法编译,运行看实际类型选择)???

方法名一致,参数不同,返回值类型和访问权限没有要求。

重载选择执行方法时,是参考传入参数的实际类型,而不是静态类型(特别注意上转型)

重写是父子类方法的多态。 

 

1. 重载和重写

重载的基本条件:

   函数名必须相同;

   函数的参数必须不同;

   函数的返回值可以相同,也可以不同;

重写的基本条件:

   发生在父子类之间;

   函数名和参数必须相同;

   返回值也必须相同,或者都返回指针或引用,或者小于父类;

 

 

关于重载的补充说明:  

重载 是使用静态分配的,在编译时就决定了使用哪个方法执行。应用在泛型或者向上转型上,左边是静态类型,右边是实际类型,方法的选择参考传入的类型:重载是通过传入参数的静态类型来选择方法的。 

 

关于重写的补充说明:

重写的标准: 遵循两同两小一大原则。

   方法名 和 参数相同,

   异常 和 返回值类型 小,

         访问权限大。

 

如果在new对象的同时,向上转型,在子类中又重写了父类的方法,此时运行时对象为父类型,拥有父类的一切以及子类重写的方法。

 

对于成员变量,编译和运行都参考左边。

对于成员函数(非静态):编译看左边,运行看右边。

对于静态函数:编译和运行都看左边。

 

3.   java特点

   一处编写,到处运行。

   Java并不完全是编译型语言,编译的字节码文件运行时是解释执行的,

   Java和C++的类也不都是完全静态绑定的,java的父子类调用==C++的虚函数。

Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。

Java虚拟机实现了跨平台接口。

Java自己操作内存减少了内存出错的可能性。

Java还实现了真数组,避免了覆盖数据的可能。

 

真数组:内存空间连续;空间专用,不会被覆盖;类型一致且唯一。

伪数组:内存不连续:例如py中的list。

 

 

 

4. Java 和 其他语言的区别:

Java和C++的区别:Java中没有指针的概念,被封装起来了。C++有。

Java不支持类的多继承,但是支持接口的多继承。C++支持类的多继承。

Java不支持操作符重载,C++支持操作符重载。

Java的内存管理比C++方便,而且错误处理也比较好,

C++的运行速度比Java快。

综合来看:C++注重运行,Java注重维护性。

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值