首页 > 其他分享 >重载重写、封装继承多态、String、==和equlas、Integer

重载重写、封装继承多态、String、==和equlas、Integer

时间:2023-01-16 22:07:52浏览次数:39  
标签:String 对象 子类 equals 多态 equlas 父类 重写


(1)重载和重写的区别:

1.重载:方法名相同,参数类型、个数、顺序不同,返回值、访问修饰符可以不同;发生在编译时;

2.重写:方法名、参数列表必须相同;返回值、异常范围小于等于父类,访问修饰符范围大于等于父类;如果父类方法为private修饰,则子类不能重写。

(2)封装继承多态

1.封装:对象属性私有化,同时提供外界访问方法。

2.继承:提高复用;子类继承父类,相当于子类对父类的扩展,子类用有父类的非private方法和属性;

3.多态:指程序中定义的引用变量所指向的具体类型、通过该引用对象调用的方法在运行时才能确定;同一个行为具有多个不同表现形式或形态的能力;分为运行时多态和编译时多态。

(3)多态存在的必要条件:

  • 继承
  • 重写
  • 父类引用指向子类对象
Parent p = new Child();
首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。

(4)重写: 要想调用父类中被重写的方法,则必须使用关键字 super

加上 final 关键字变成非虚函数

(5)String、StringBuffer、StringBuilder:

String:不可变,public final char value[]。

StringBuffer、StringBuilder继承自AbstractStringBuilder,其中也有char[] value(未用final修饰),可变;StringBuffer加了同步锁synchronized关键字,线程安全;而另一个反之。

操作少量数据---String
单线程操作字符字符串缓冲区操作大量数据----StringBuilder
多线程...大量数据-----StringBuffer

(6)Integer、int自动拆箱和装箱:见博客。

(7)==和equals的区别:

==:判断是否相等;基本数据类型比较值;引用数据类型比较内存地址;

equals:如果类未重写equals,,则等价于==;若已重写,则用重写的equals来实现自定义比较规则。

(8)抽象类和接口的区别:见博客。

(9)hashcode与equals的关系:

hasCode():获取哈希码,确定该对象在哈希表中的索引位置;存在于Object类下;HashSet检查是否重复时:先比较hashCode,若相同则调用equals方法来确定这两个对象是否真的相同,如果为真,则不会让其插入集合中。

1.两个相等的对象的hashCode码一定相同
2.hashCode码相同的两个对象不一定真的相同
3.两个相等的对象调用的equals方法都返回为true
4.equals重写,则hashCode方法一定要被重写
5.hashCode的默认行为是对堆上的对象产生独特值,若为重写,则始终不会相等。

(10)final修饰符:见博客。

(11)异常处理:

1.Throwable=Error+Exception
2.Exception=IOException+RuntimeException
3.IOException=EOFException+FileNotFoundException
4.RuntimeEception=...
getMessage:详细信息
toString:简要信息
getLocalizedException:返回本地定义的异常对象信息。若继承自Throwable的子类重写该方法,则可以自定义;若未重写,则返回与getMessage相同
printStackTrace:在控制台打印Throwable对象封装的异常信息

注:当在try块或catch块中遇到return,则finally块将在return前执行。

finally在四种情况不会执行:线程死亡+CPU关闭+finnaly中发生异常+前面的代码用了exit关闭程序

(12)两种输入方式。

 

 

标签:String,对象,子类,equals,多态,equlas,父类,重写
From: https://blog.51cto.com/u_15664219/6010857

相关文章

  • matplot.pylab:TypeError: int() argument must be a string, a bytes-like object or
    Traceback(mostrecentcalllast):File"/home/lhw/Gradute/jyq/eval/examples/lpipSeq/test.py",line9,in<module>frommatplotlib.pylabimport*File......
  • String 常用方法总结
    String常用方法(JavaSE)常用实例方法求字符串某一位置字符publiccharcharAt(intindex)//返回字符串中指定位置的字符;注意字符串中第一个字符索引是0,最后一个是le......
  • StringIO 和 BytesIO
    StringIO要把str字符串写入内存中,我们需要创建一个StringIO对象,然后像文件一样对读取内容。其中StringIO中多了一个getvalue()方法,目的是用于获取写入后的str。......
  • strings包
    判断前后缀HasPrefix()判断字符串s是否以prefix开头:strings.HasPrefix(s,prefixstring)boolHasSuffix()判断字符串s是否以suffix结尾:strings.HasSuffix......
  • go string()内置函数和strings.Itoa()
    strconv.Itoa函数的参数是一个整型数字,它可以将数字转换成对应的字符串类型的数字。packagemainimport( "fmt" "strconv")funcmain(){ string_number:=97......
  • F - Substring of Sorted String
    题目链接题解(树状数组)我们维护两个树状数组,一个记录\(1\simi\)中\(s_i>s_{i+1}\)的数量,即逆序对数量,另一个记录\(1\simi\)中\(26\)个字母的数量。在修改时很好......
  • C++中string占用内存大小
    转自:https://blog.csdn.net/DLUTBruceZhang/article/details/98222351.例子intmain(){strings="abc";cout<<sizeof(s)<<"\n";cout<<sizeof(string)<<"......
  • 多态
    1.一个对象的实际类型是确定的2.可以指向的引用类型就不确定了;父类的引用指向子类3.子类能调用的方法都是自己的或者继承父类的!4.父类型,可以指向子类,但是不能调用子类独......
  • Python的多态怎么理解
    之前搜索的解释都说鸭子模型,什么一个东西只要它叫起来像鸭子、走起来像鸭子、xxx的,它就可以被称为鸭子......
  • 4. redis数据类型之String-bit
    Redis字符串string-bit前面我们介绍了Redis中的字符串类型的基本命令操作。但是没有涉及到bit相关的命令。本文我们来看几个bit相关的命令。bit相关的命令指的是bitcoun......