Java面相对象的三大特征:封装,继承,多态;
一、封装(隐藏成员变量)
步骤:1.隐藏成员变量。将成员变量加private。
结果:其他类再创建狗的对象的时候,在调用成员变量时显示错误。
2.创建公有的getter和setter方法。
在此类中创建共有的(public) (setName)创建成员变量的赋值方法。
注意:(1).setName N大写。
(2).方法的参数必须是成员变量的类型。
3.在setter和getter加入属性控制。
4.setter局部变量和成员变量名字相同时。
5.this 在本类中,调用自己和成员变量和方法。
特殊方法:1.构造方法:实例化 创建对象并赋值。
语法:public 类名(){
}
(1)创建类含有无参构造方法。
(2)创建对象时候就会调用此构造方法。
(3)构造方法由于方法名相同,传递参数类型不可一致。
有参(在本类中写) 实例化对象(在他类)setName(); dog.setName("");
(4)定义有参购造方法,隐藏的无参构造方法失效。必须在类中定义无参构造方法。
2.String.format();直接使用类名。
二、继承
1.概念。
减少代码冗余
是类与类中的关系,is-a关系。
优点:子类可以拥有父类的所有属性和方法。
缺点:Java中继承特点:单继承、一个类只有一个父类。
语法:extends
2.继承关系初始化顺序
父类属性--》父类构造方法--》子类属性--》子类构造方法
3.方法的重载和重写
重载 overloading
规则:同一个类中
方法的名称相同
参数列表不相同(类型、个数、顺序)
返回值类型和访问修饰符无关
重写 override
规则:继承关系中体现
方法名字相同
参数列表必须相同
返回值的类型相同或者是其子类
方法重写:相对于继承而言,子类中对父类已经存在的方法进行区别修改。
4.abstract 抽象类
会使这个类成为一个抽象类,这个类将不能生成对象实例,可以做为对象变量声明的类型,需要子类继承并覆盖其中的抽象方法。
5.final
final:当用final修饰一个类时,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰。final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方法都会被隐式地指定为final方法。
三、多态
1.生活中的多态
同一种的事物,由于条件不同,则产生不同的结果,事物的多种表现状态。
程序中的多态
同一个类型,使用不同的实力,执行不同的操作。
2.发生在继承关系中
3.多态实现前提
(1)类与类之间存在继承关系。
(2)类与接口机之间存在实现关系。
4.多态实现步骤
(1)编写父类
(2)编写子类
(3)使用时,就可以使用父类的引用类型,子类的实例。
5.多态的实现方式
(1)Pet pet=new Dog();
(2)使用父类作为方法的形参实现。
(3)使用父类作为返回值。