关于面向对象思想,抽象类和接口,多态等的解释

一、如何解释面向对象的思想
答:面向对象程序设计的基本思想是,用类来描述实体的抽象类型,将现实中的事务抽象为对象,把对象赋予相应的状态和行为,通过对消息的响应完成一定的任务。而对象都具有下面两个共性:1.具有一定的的状态和特性2.每个对象都有特定的操作。
如下边简单代码:

public class People {
    String name;
    int age;
   public void print(){
       System.out.println("大家好我叫"+name+",我今年"+age);
   }
   public static void main(String[] args){
       People p1=new People();
       p1.name="zs";
       p1.age=22;
       p1.print();
   }
}

二、面向对象的四大特征是什么?
答:1,抽象性
子类继承父类的特征和行为。子类可以有父类的方法,属性(非private)。子类也可以对父类进行扩展,也可以重写父类的方法。
2,封装性
封装就是把过程和数据包围起来,对数据的访问只能通过特定的界面.如私有变量,用set,get方法获取。
3,继承性
子类继承父类的特征和行为。子类可以有父类的方法,属性(非private)。子类也可以对父类进行扩展,也可以重写父类的方法。
super关键字:通过super实现对父类成员的访问,用来引用当前对象的父类,通过super显示的调用父类的有参构造。
(类与类中常用的关系:a part of…一部分
继承:a kind of… 一种)
4,多态性(下边单独解释)
三、解释静态绑定和动态绑定的区别
答: 静态绑定:编译器 static方法 普通方法用的都是静态绑定
动态绑定:运行期 final,private方法用的是动态绑定 动态绑定机制:引用–>对象头–>方法表(派生类重写的方法的地址)
四、什么时候需要把类设计成抽象类?为什么?
答:不需要被实例化的类,把基类设计成抽象类,基类只保留所有派生类的公共属性
基类:不是为了描述实体抽象类型而存在的
把所有的派生类共有的属性提取出来,放到基类里面,派生类从该基类继承,就直接拥有了相应的属性;给所有派生类保留公共的抽象接口(函数),让派生类去重写接口方法,实现自己特有的操作。
五、解释什么是多态?
答: 用基类的引用,引用不同的派生类对象,调用同名覆盖方法,基类引用,引用那个派生类对象,就调用那个派生类对象的方法
六、解释抽象类和接口的区别
答::1. 应用场景的区别:抽象类的方法是派生类公共的方法,而有的派生类不能实现这种方法,这时就需要接口来实现

  1. 抽象类可以有构造方法,接口中不能有构造方法。
  2. 抽象类中可以有普通成员变量,接口中没有普通成员变量。
  3. 抽象类中可以包含非抽象普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的方法。
  4. 抽象类中的抽象方法的访问权限可以是 public、protected 和(默认类型,接口中的抽象方法只能是 public 类型的,并且默认即为 public abstract 类型。
  5. 抽象类中可以包含静态方法,在 JDK1.8 之前接口中不能不包含静态方法,JDK1.8 以后可以包含。
  6. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问权限可以是任意的,但接口中定义的变量只能是 public static final 类型的,并且默认即为 public static final 类型。
  7. 一个类可以实现多个接口,用逗号隔开,但只能继承一个抽象类,接口不可以实现接口,但可以继承接口,并且可以继承多个接口,用逗号隔开。

猜你喜欢

转载自blog.csdn.net/qq_44822679/article/details/89513334