您的位置:首页 > 编程语言 > Java开发

Java之面向对象的三大特性:封装,继承,多态讲解

2016-06-01 18:07 656 查看
面向对象之封装

面向对象的封装性指的是:

1.        属性私有化

2.        对外提供公开的setter和getter

Public classCustomer{

private int age;//private修饰的数据只能在本类中访问

public voidsetAge(int _age){

//安全控制

if (_age<0||_age>100){

system.out.prntln(“年龄不合法”);

return;

}

age=_age;

}

public intgetAge(){//成员方法,实例方法,非静态方法

               //成员方法必须使用”引用.”的方式访问。

return age;

}

面向对象之继承

引入类继承最基本的作用:代码重用

语法:[修饰符列表]class子类名   extends父类名{

     类体}

注意:1. Java语言中,类与类之间只支持单继承

      2.如果没有显示的继承其他类,则该类默认继承object,object是sun提供的Java中的根类

3.Java语言中,子类继承父类,会将弗雷的所有数据继承,包括私有的也能继承过来,但是在子类中无法直接访问父类中的私有数据,可以

 间接访问;

4.构造方法无法被子类继承

Public class superClass(){

  public void m1(){

System.out.println(“m1…”);

  Public void m2(){

System.out.println(“m2…”);

}

Public class Subextends superClass{

  Public void m3(){

System.out.println(“m3…”);

 

Public classTest01{

Public static voidmain(string[] args){

Sub s=new Sub();

s.m1();

s.m2();

s.m3();

}

面向对象特性之多态

无论向上还是向下转型,两个类之间必须是继承关系

关于Java语言中的向上转型和向下转型

1.        向上转型(upcasting):子—>父,其又被称为自动类型转换,父类型的应用指向子类型对象

程序分为两个阶段:编译阶段和运行阶段

程序编译阶段只知道al是一个Animal类型,运行时堆中的实际对象是cat类型;

Animal al= new cat();

程序在编译阶段al被编译看作是Animal类型,所以程序在编译阶段a1引用绑定的是Animal类种的eat方法(静态绑定),

程序在运行的时候堆中的对象实际是cat类型,而cat 重写了eat方法,所以在运行阶段对象的绑定的方法是cat 中的eat方法(动态绑定)

al.eat();//猫吃鱼

2.        向下转型(downcasting):父—>子,强制类型转换,存在风险

Animal  a2=new Cat();

强制类型转换,需要加强制类转换符

Cat  c1= (cat) a2;

       c1.move();

3.         尽量不要面向具体编程,面向父类编程,面向抽象编程

多态的作用:1.使用多态可以使代码之前的耦合度降低;

2.项目的拓展能力增强;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: