一 面向对象的三大要点(封装,继承,多态)

封装:

类: 一类事物的总称,Java里用类来封装数据,相比面向过程编程中的函数,类包含属性 方法, 提供了更大的编程粒度.

对象:类的具体化,类的具体某一个实例.

类和对象的理解:

举例

1 一个男生说,我想找个女朋友. (此处女朋友理解为类)

2 一个男生说,我女朋友怎么怎么好. (此处女朋友理解为对象)

类中包含属性 方法 构造方法 静态初始化块 初始化块

引用变量:理解为给对象起了一个名字,这个变量就代表这个对象.

Person a= new Person(); 此处a就是一个引用变量,引用了一个Person对象.

继承:

继承的作用是为了复用代码.子类继承父类之后就有了父类的全部功能(私有成员除外),它还可以在父类的基础上增加自己的新功能.

eg: 码头工人是工人的子类,码头工人继承了工人这个类.

public class Worker{
public void useTool(
System.out.println("使用工具");
);
public void work(
System.out.println("工人在劳动");
);
}
public class Docker extends Worker{
public void work(){
System.out.println("码头工人在港口劳动");
}
}

以上代码中,Docker继承了Worker,并且重写了work这个方法.这样Dorker这个类里的work方法就是重写之后的了.并且Docker类里自动也有了useTool这个方法.

多态:

子类对象可以赋值给父类引用变量

Person person=new Man();

子类对象的类型既是子类类型,同时它的类型也是父类类型

二 接口

接口定义一套规范,利用接口来解耦合,接口体现了一种规范与实现分离的思想

Java8接口里可以定义default方法之前,接口里的方法都是抽象方法,接口的实现类如果想成为一个普通的类,必须要实现接口里面的所有方法.

public interface Girl{
//定义使用口红的抽象方法,留给实现类实现该方法
void useLipstick();
}
public class ChineseGirl implements Girl{
//用1号色号的口红
void useLipstick(){
System.out.println("用1号色号的口红");
}
}
public class AmericanGirl implements Girl{
//用2号色号的口红
void useLipstick(){
System.out.println("用2号色号的口红");
}
}