封装.继承.多态

只愿长相守 提交于 2020-02-04 17:42:24

封装

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){}

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!