8、面向对象的三大特性

封装
将类中的信息隐藏起来不允许外部的类直接访问 , 如果外部的类想要访问必须通过特定的方式才能访问
 
封装一般只封装属性
使用方式 :
将属性私有化即属性通过 private 修饰
提供公有的 getter setter 方法对私有的属性进行访问
 
优点 :
提高属性的安全性
提高系统的规范性
 
继承
 
当某些类具有公共的属性时 , 可以将这些属性放在一个类中 , 其中存放共同属性的类称之为父类 , 其他类为子类 ;
父类中的属性可以传递给子类 , 子类可以使用父类中的属性
子类与父类的关系为 is-a
 
 
语法 :
 
访问修饰符  class 子类类名 extends 父类类名 {
}
 
在创建子类对象的时候会先创建父类对象 , 在创建子类对象时其实总共创建了两个对象
作用:提高代码的重用性
 
super 关键字
 
当子类中的属性、方法和父类中的属性、方法相同的时候通过 super 去调用父类中的属性、方法
 
语法 :
super. 属性名 ;
 
super. 方法名 ();
 
在子类中调用父类的构造方法
 
语法 :
 
super([ 参数列表 ]);
 
当调用父类的构造方式时 , 必须写在方法体的第一行
 
子类没有继承父类
1. 私有的属性和方法 , 不在同包下 , 子类不能继承父类默认修饰符修饰的属性和方法
2. 构造方法
 
方法的重写 (override)
 
有继承关系 , 在子类中重新编写父类的方法
方法名相同 , 参数列表相同 , 返回值类型也要相同 , 子类中的访问修饰的权限要等于或者大于父类的访问修饰符的权限
 
 
当父类的方法无法满足子类的需求的时候要用方法的重写
 
要在子类中重新调用父类被重写前的方法用 super
 
父类中的构造方法和私有的方法无法被重写
 
Object
 
Object 是所有类的父类 , 任何一个类都直接或者间接的继承了 Object
 
 
toString() 以字符串的形式返回该对象的地址
注意 : 当直接输出某个对象时是默认的调用了 toString()
 
 
多态
 
根据不同的情况显示不同结果 , 同一种引用类型创建不同的实例
成员变量:
编译的时候,参考父类中有没有这个变量,如果有,编译成功;没有编译失败
运行的时候,运行的是父类中的变量值
编译运行全看父类
成员方法:
编译的时候,参考父类中有没有这个方法,如果有,编译成功;没有编译失败
运行的时候,运行的是子类的重写方法
编译看父类,运行看子类
 
实现多态的条件
1. 有继承关系
 
2. 方法的重写
 
3. 向上转型
 
向上转型 ( 即子类对象转化为父类对象 )
当子类向上转型为父类之后 , 会调用子类重写后的方法 , 不能调用子类独有的方法
即:(父类做类型,子类实例化)
 
向下转型 ( 将父类转化为子类对象 )
 
向下类型转化语法 :
子类类型 子类对象 =( 子类类型 ) 父类对象
 
父类对象要向下转型为子类对象 , 那么该父类对象必须是由子类对象转化过来的
 
instanceof( 判断某个对象的类型 )
 
判断某个父类类型是由哪个子类转化过来的
 
语法 :
对象名 instanceof 类类型


猜你喜欢

转载自blog.csdn.net/weixin_42567749/article/details/81020032
今日推荐