重载就是同样的一个办法可能依据输出数据的不同,做出不同的解决
重写就是当子类继承自父类的雷同办法,输出数据一样,但要做出有别于父类的响应时,你就要笼罩父类办法
java 和 c ++ 区别
- 都面向对象,反对封装,继承,和多态
- java 不提供指针间接拜访内存,程序内存更加平安
- java 类是单继承的,c++ 类能够多继承,java 接口能够多继承
- java 有主动内存治理垃圾回收机制,不须要手动开释无用内存
- c++ 同时反对办法重载和操作符重载,java 只反对办法重载
java 中只有值传递,办法失去的是所有参数值的拷贝,不能批改传递给他的任何参数变量的内容。
对象变量就不一样了。
成员变量和局部变量的区别
- 成员变量属于类,会被赋予初值,能够被 public static 等修饰符润饰,属于对象,生命周期随对象生死,存在堆内存。
- 局部变量是代码块中定义的,不会被赋予初值,只能被 final 润饰,生命周期随办法执行生死,存在栈内存。
继承
- 子类继承父类所有的属性和办法
- 子类能够有本人的属性和办法
- 子类能够重写父类的属性和办法
多态
- 援用类型变量收回的办法调用的到底是哪个类的办法,在程序运行期间能力确定
- 多态不能调用“只在子类存在,在父类不存在的办法”
- 如果子类覆写了父类的办法,执行的是子类的办法,否则执行的是父类的办法
string 为什么是不可变得
- string 中应用 final 润饰字符数组来保留字符串,private final char[] value,是常量,线程平安。
- stringBuilder 和 stringBuffer 也应用字符数组然而没有用 final 润饰,所以可变。stringBuffer 对办法加了同步锁,线程平安 stringBuilder 非线程平安。