类:对具有相同属性和方法的一类事物的抽象。
对象:具体的某一事物,代表自身的一些属性和方法。
关联(组合,聚合),继承,依赖,实现
面向对象- - -》考虑哪些类,对象- - -》类和对象有属性,方法- - - - - -》类和类之间的关系
<强> 1)。重载(过载):强>
方法重载就是多个方法名称相同但是参数类型或者参数个数不同的方法,与返回值类型和修饰符无关
类测试{ 公共int测试(int) { 返回一个; } 公共字符串测试(字符串){ 返回一个; } 公共漂浮测试(int,字符串b) { 返回0 f; } 公共漂浮测试(字符串,int b) { 返回1.0 f; } 字符串测试(浮动){ 返回"; } 字符串测试(int){//该方法不是重载 返回"; } }
前面五个互为重载,第一个和第六个虽然返回值类型不同,但参数相同,所以第一个和第六个参数不是重载
<强> 2)。重写(覆盖):强>
子类继承父类时,子类的方法名称,参数类型,参数个数与父类完全相同,则认为子类重写了父类的方法。
方法重写规则:
-
<李>参数列表和原方法完全相同李>
<李>返回值类型和原方法相同或者为父类返回值类型的子类型李>
<李>不能比原方法限制更严格的访问级别(举例:父类方法为公众,那么子类不能为保护,私人)李>
<李>父类方法被定义为最后一个时,则不能被重写李>
<李>父类方法被定义为静态时,不能被重写,但是可以重写声明一个相同的方法(参考隐藏)李>
<李>不能抛出新的异常或比原方法更广泛的异常(父类抛出IOException,重写方法不能抛出异常只能抛出IOException或者IOException子类异常)
李>
<强> 3)。隐藏:强>
隐藏是针对于父类的成员变量和静态方法而言的。子类中声明了和父类相同的变量名或静态方法(方法名相同,参数列表相同,返回类型相同)则实现了对父类成员变量和静态方法的隐藏、下面举个例子有助理解:
A类{ 静态int=1; 静态int b=2; int c=33; 公共静态空白不要把(){ System.out.print(一个); } 公共静态孔隙printB () { System.out.print (b); } } B类扩展了一个{ 静态int=3; 静态int b=4; int c=44; 公共静态孔隙printB () { System.out.print (b); } } 公共类测试{ 公共静态void main (String [] args) { B.printA (); B.printB (); System.out.print(本科); A=new (); B B=new (); a.printB (); b.printB (); System.out.print(交流); System.out.print(公元前); } }
<强>输出结果:强>
1 4 3 2 4 33 44
如果子类中有相同名称的静态方法或变量父类的会被隐藏,如果子类中存在同名的静态方法或变量,则会隐藏父类中得静态方法或变量,此时子类调用的就是子类中自己的静态方法或变量;如果子类中不存在同名的静态方法或变量,则会调用父类中的静态方法或变量;父类调用的始终是其本身的静态方法和变量。
封装是把对象的属性和操作结合为一个独立的整体,隐藏对象内部操作的实现,用户只需要通过其对外提供的方法来访问该对象,无需知道其内部实现细节。
<>强优点:强>
-
<李>隐藏内部实现细节,提供公共访问方式李>
<李>类内部可以自由修改不影响其调用者李>
<李>减少耦合度,提高安全性
李>
继承是一个对象获取另一个对象属性的过程,关键字为扩展和实现。
<强> 1)。是一个关系(一个对象所属于另一个对象):强>
方式一。用扩展来实现继承:
公共类动物{ 公共空间吃(){ system . out。println(“动物吃…”); } } 公共类哺乳动物动物{延伸 公共空间吃(){ system . out。println(“哺乳动物吃…”); } } 公共类狗延伸哺乳动物{ 公共空间吃(){ system . out。println(“狗吃…”); } }Java中面向对象的知识点总结