封装.继承.多态

封装

1.封装:隐藏类内部细节

2.封装 步骤

  第一步:将属性私有化.(private)

  第二步:提供getter/setter方法(getXxxx(),setXxxx()).

  第三步:在getter/setter中加入控制语句.

3. this关键词

  this:表示当前对象.

  调用属性:this.属性名

  调用方法:this.方法名();

  this():表示调用构造函数.

注意:this(),必需写在构造函数的第一行.

继承(extends)

1. 继承:遗传

2. 语法

  public class 子类 extends 父类{

    //代码块

  }

例:public class Dog extends Pet {

    //代码块

}

3. 继承的特点

  a.子类可以继承父类的非私有的属性和方法

  b.不能继承构造方法

  c.继承默认权限修饰符的方法和属性,子类和父类必需在同一包中

4. super(父类)

  super.属性名; //表示访问父类的属性

  super.方法名(参数); //表示访问父类的方法

  super(参数);//表示访问父类的构造函数;

注意:super()访问父类构造函数时,必需写在第一行;

多态

1. 多态含义:一个事物的多种形态

2. 多态的表现

  行为(方法)多态:重写和重载.

  引用多态(动态绑定):编译时的类型和运行时不一致的这种现象叫做动态绑定.

  例:父类 = 子类.

    pet p = new Dog();

3.向上转型和向下转型

  向上转型:父类 = 子类;

  向下转型:子类 = (子类)父类;

  例:Dog d = Dog()p;

注意java.lang.ClassCastException:类型转换异常.

    父类的运行时类型跟要转成的子类的类型不一致

注意:引用多态存在继承关系

instanceof

  语法:对象A instanceof 类型B;

  判断对象A的类型是否是类型B,如果是就返回true,否则返回false.

  例:d instanceof Dog

实现多态的两种形式

  a.使用父类作为方法形参实现多态

    public void play(Pet p){}

  b.使用父类作为方法返回值实现多态

    public Pet getPet(int type){}

Hold on!
原文地址:https://www.cnblogs.com/linjiaxiaomeiainia/p/6832929.html