美文网首页
java三大特性的关系

java三大特性的关系

作者: timothyue1 | 来源:发表于2018-01-19 23:02 被阅读0次

面向对象编程有三大特性:封装、继承、多态。

封装

1.封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法(getter,setter),如果不想被外界方法,我们大可不必提供方法给外界访问。

2.封装确实可以使我们容易地修改类的内部实现,而无需修改使用了该类的客户代码。

3.可以对成员变量进行更精确的控制。(在setter方法中进行实际意义的校验)

总结:控制属性访问权限,不是你想改就能改。容易修改属性类型。精确控制属性的取值范围。

继承

1.继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。

2.子类拥有父类非private的属性和方法。

3.子类可以拥有自己属性和方法,即子类可以对父类进行扩展。

4.子类可以用自己的方式实现父类的方法。

【多态】重点

当超类对象引用变量引用子类对象时,被引用对象的类型而不是引用变量的类型决定了调用谁的成员方法,但是这个被调用的方法必须是在超类中定义过的,也就是说被子类覆盖的方法,但是它仍然要根据继承链中方法调用的优先级来确认方法,该优先级为:this.show(O)、super.show(O)、this.show((super)O)、super.show((super)O)。

public class A {

    public String show(D obj) {

        return ("A and D");

    }

    public String show(A obj) {

        return ("A and A");

    }

}

public class B extends A{

    public String show(B obj){

        return ("B and B");

    }

    public String show(A obj){

        return ("B and A");

    }

}

public class C extends B{

}

public class D extends B{

}

public class Test {

    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("1--" + a1.show(b));

        System.out.println("2--" + a1.show(c));

        System.out.println("3--" + a1.show(d));

        System.out.println("4--" + a2.show(b));

        System.out.println("5--" + a2.show(c));

        System.out.println("6--" + a2.show(d));

        System.out.println("7--" + b.show(b));

        System.out.println("8--" + b.show(c));

        System.out.println("9--" + b.show(d));     

    }

}

跟据公式来套:

1--A and A

2--A and A

3--A and D

4--B and A

5--B and A

6--A and D

7--B and B

8--B and B

9--A and D

相关文章

  • Java11的新特性

    Java语言特性系列 Java5的新特性 Java6的新特性 Java7的新特性 Java8的新特性 Java9的...

  • Java15的新特性

    Java语言特性系列 Java5的新特性 Java6的新特性 Java7的新特性 Java8的新特性 Java9的...

  • Java12的新特性

    Java语言特性系列 Java5的新特性 Java6的新特性 Java7的新特性 Java8的新特性 Java9的...

  • Java初级笔记No.3(更新中)

    2018.7.26 1、Java中的继承 Java中使用extends关键字来说明继承关系。 2、继承的特性 ja...

  • java三大特性的关系

    面向对象编程有三大特性:封装、继承、多态。 【封装】 1.封装把一个对象的属性私有化,同时提供一些可以被外界访问的...

  • Java集合之Queue

    Java集合之Queue Queue关系图如下 从如上图可看出,LinkedList具有List的特性 Queue...

  • JAVA入门 第一章 JAVA语言概述

    1.1 Java的基础特性 Java“ 白皮书” 的关键术语----主要语言特性 1 ) 简单性 Java 语法是...

  • 使用Netty,我们到底在开发些什么?

    您可能感兴趣的文章: 大数据成神之路系列:Java高级特性增强-集合Java高级特性增强-多线程Java高级特性增...

  • Java18的新特性

    Java语言特性系列 Java5的新特性[https://segmentfault.com/a/119000000...

  • Java19的新特性

    Java语言特性系列 Java5的新特性[https://segmentfault.com/a/119000000...

网友评论

      本文标题:java三大特性的关系

      本文链接:https://www.haomeiwen.com/subject/bdggfxtx.html