面向抽象和面向对象以及面向切面的编程都是我们在编程过程中常用的编程思维,面向抽象编程目的是为了应对用户需求的变化,将某个类中经常因需求变化而需要改变的代码从类中分离出去。其核心是让类中每种可能的变化对应的交给抽象类的一个子类去负责,从而让该类的设计者不去关心具体的实现,避免所设计的类依赖于具体的实现。
举个例子来说,比如有一个公司员工有助理和程序员以及其他的职位,但他们都应该有一个共同的方法就是工作,当然你可以写上work(),方法,但是从真实的情况来看,这是不符合规律的。因为员工都不想工作,所以如果把主动性交给员工的话,估计是没有人愿意主动工作的,所以我们必须通过规定来强制员工工作,所以体现到代码上就是我们需要建立一个抽象的员工类,定义一个抽象的方法,所有员工实现这个类,必须实现这个方法,也就是说必须要工作,这样就从根本上规定了,你必须要工作,具体你是怎么工作的,那就由你的职业来决定的。
所以面向抽象编程是指当设计某种重要的类时,不让该类面向具体的类,而是面向抽象类,及所设计类中的重要数据是抽象类声明的对象,而不是具体类声明的对象,就是利用abstract来设计实现用户需求。
A a =new B;
在内存堆中创建一个B对象,在内存栈中创建一个引用A,A指向B.用A中的a.print()方法去调用B中的同名方法,这当然是正确的,因为B类实现了A接口。所谓的面向接口编程可以降低程序之间的耦合度,是指在具体的调用处都是接口进行的,并不依赖于具体类,在A a= new B;中,B可以被任意实现了接口A的其他类替换掉,只要是实现A类就可以,很大程度上提高了灵活性。
程序员,代码。
计算机网络视频,面试中长问道的关于网络相关的知识,这个视频中全会有,如果你想要就私信我吧,不在头条一个一个发了。
更多烟台编程相关资讯,请扫描下方二维码