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)所以直接找到这里

0 0