java 三大特性理解,总结理解java三大特性
1、封装
封装就是把特定的功能封装在一起,留出少数的接口供外部访问。
好处:a保证内部数据安全稳定 b 功能模块化,便于维护 c 增加了代码的可读性
用在那些地方:比如登录 注册 支付 退款 表单保存 等
public protect private 定义了不同类的访问权限,可以控制外部访问
2、继承:
为了利用父类的方法,不方便或者不不能修改父类,就可以继承父类方法,并且增加子类特有的属性
好处: 代码复用,减少代码量 结构清晰 便于修改和维护
子类继承父类的方法 有 使用父类方法、重写 重载
重写:和父类方法的名称参数完全一样
重载:重写一遍父类方法 ,名称不变,参数变化
3多态:
不同类的对象对同一消息做出响应
动态的使用子类的方法 要以继承为基础
多态一般包括三个过程 继承父类方法 重载/重写父类方法 父类引用指向父类。
主要用在一个父类有多个子类,调用一个公共的父类方法,本质上是灵活调用子类方法。
一个 经典例子,看懂这个就对多态有一定了解
class A{
public void Out(A a){
system.out.print("我是A A")
}
public void Out(D d){
system.out.print("我是A D")
}
}
class B extend A{
public void Out(A a){
system.out.print("我是B A")
}
public void Out(B b){
system.out.print("我是B B")
}
}
Class C extends B{}
Class D extends B{}
调用测试:
public static void main(String args []){
A a1=new A();
A a2 =new B();
B b =new B();
C c =new C();
D d=new D();
1 system.out.println(a1.Out(c))
2 system.out.println(a2.Out(a))
3 system.out.println(b.Out(c))
4 system.out.println(c.Out(a))
5 system.out.println(d.Out(d))
}
输出 1我是 BB
2 我是 BA
3 我是 BB
4 我是 BA
5 我是 BB
附 多态执行的先后顺序是
this.call(this) super.call(this) this.call(super) super.call(super)
1、封装 封装就是把特定的功能封装在一起,留出少数的接口供外部访问。 好处:a保证内部数据安全稳定 b 功能模块化,便于维护 c 增加了代码的可读性 用在那些地方:比如登录 注册 支付 退款 表单保存 等 public protect private 定义了不同类的访问权限,可以控制外部访问 2、继承: 为了利用父类的方法,不方便或者不不能修改父类,就可以继承父类方法,并且增加子类特有的属性 好处: 代码复用,减少代码量 结构清晰 便于修改和维护 子类继承父类的方法 有 使用父类方法、重写 重载 重写:和父类方法的名称参数完全一样 重载:重写一遍父类方法 ,名称不变,参数变化 3多态: 不同类的对象对同一消息做出响应 动态的使用子类的方法 要以继承为基础 多态一般包括三个过程 继承父类方法 重载/重写父类方法 父类引用指向父类。 主要用在一个父类有多个子类,调用一个公共的父类方法,本质上是灵活调用子类方法。 一个 经典例子,看懂这个就对多态有一定了解 class A{ public void Out(A a){ system.out.print("我是A A") } public void Out(D d){ system.out.print("我是A D") } } class B extend A{ public void Out(A a){ system.out.print("我是B A") } public void Out(B b){ system.out.print("我是B B") } } Class C extends B{} Class D extends B{} 调用测试: public static void main(String args []){ A a1=new A(); A a2 =new B(); B b =new B(); C c =new C(); D d=new D(); 1 system.out.println(a1.Out(c)) 2 system.out.println(a2.Out(a)) 3 system.out.println(b.Out(c)) 4 system.out.println(c.Out(a)) 5 system.out.println(d.Out(d)) } 输出 1我是 BB 2 我是 BA 3 我是 BB 4 我是 BA 5 我是 BB 附 多态执行的先后顺序是 this.call(this) super.call(this) this.call(super) super.call(super)