JAVA的三大特性
来源:互联网 发布:软件采购招标评分标准 编辑:程序博客网 时间:2024/05/30 23:02
JAVA的三大特性有封装,继承与多态
1.
封装:封装就是把属性包裹起来,只能通过已定义的公共方法进行调用,封装可以提高代码的复用性,可维护性,减少模块间的干扰
代码:
这里把name与age进行了封装如果想要访问必须要通过get方法进行访问
2.
继承:继承分为两种单继承和多继承,
单继承是子类继承一个父类,多继承是子类继承一个父类而这个父类又继承了更高的父类
public class Demo{ public static void main(String[] args) { A a=new B(); a.getAge(11); }}class A{ public void getAge(int age) { System.out.println(age); }}class B extends A{}
这里就是单继承,B继承了A,B就拥有了A的公共的方法 结果是11。多层继承就是A还继承了另一个类这里就不在举例了,接下来就是多态了
3.
多态:实现多态的三个必要条件分别是- -继承,重写,父类引用指向子类对象。可以提高代码灵活性,可扩充性。
下面是我曾看过的关于多态的代码,我觉得很有趣,我曾花过一段时间来理解过
public class Demo{ 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(); System.out.println(a1.show(b)); System.out.println(a1.show(c)); System.out.println(a1.show(d)); System.out.println(a2.show(b)); System.out.println(a2.show(c)); System.out.println(a2.show(d)); System.out.println(b.show(b)); System.out.println(b.show(c)); System.out.println(b.show(d)); }}class A{ public String show(D obj){ return ("A and D"); } public String show(A obj){ return ("A and A"); } } class B extends A { public String show(B obj){ return ("B and B"); } public String show(A obj){ return ("B and A"); } } class C extends B{} class D extends B{}
输出结果为 A and A
A and A
A and D
B and A
B and A
A and D
B and B
B and B
A and D
我先说说我对每一个结果的理解 首先
1. a1.show(b)因为a1是A的引用对象,b是参数,而b的父类是A所以找到A类中的show(A obj)
2. a1.show(c)同上,c是b的子类而b是a的子类找到show(A obj)
3. a1.show(c)参数d直接在a1的引用中存在直接找到show(D obj)
4. a2.show(b) a的引用指向b的对象 b作为参数,因为b有重写所以a的show(A obj)被重写了 所以输出结果是B and A
5. 同上
6. a2.show(d)因为是a的引用所以直接找到show(D obj)
7. 直接找到b引用的show(B obj)
8. 同上
9. 引用是b参数为d,d是a的子类而a中直接有show(D obj)所以直接找到这里
- Java的三大特性
- java的三大特性
- JAVA的三大特性
- Java 的三大特性
- java的三大特性
- java的三大特性
- java的三大特性
- java的三大特性
- java的三大特性
- JAVA的三大特性
- java的三大特性
- java的三大特性
- Java的三大特性
- Java 的三大特性
- java 三大特性
- Java三大特性
- Java三大特性
- Java三大特性
- map迭代方法
- 抽象类和普通类的区别
- 组合计数(容斥定理+卢卡斯定理的正确姿势)
- BZOJ 4809: 皇后 (n皇后问题)dfs搜索入门
- 使用python批量爬取apk文件
- JAVA的三大特性
- [leetcode]213. House Robber II
- java后台跳转带参数
- 2017 git的学习笔记之设置(忽略换行 权限)
- jquery取得多选checkbox选中的值
- Android中的快捷方式(本文只包含检查快捷方式的创建)
- NGUI之UIButton
- 51nod1220 约数之和
- Java的JDBC事务详解