一 面向对象的三大要点(封装,继承,多态)
封装:
类: 一类事物的总称,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号色号的口红");
}
}