草稿 oop部分

典型特征:封装 继承 多态
封装:在JAVA中封装是随处可见的

class Human{ 
      String  sex;
      int  age;
            }`

比如一个类就封装了属于这个类属性和方法

public int sum(int a, int b)
{return a+b;}

有的方法就封装了一些特定的功能。
sum这个方法就是封装了一个求和的功能
除了封装特定功能和数据之外,JAVA还提供了封装之后的访问权限从大到小依次是:
public – protected – default – private

public(类 包 子类 任意) protected(类 包 子类) defaule(类 包) private(类)

封装的意义:
(1)提供访问权限是为了保证数据的安全,避免他人随意修改数据;
(2)封装好的代码,可以重复利用,提高代码的复用性。
继承: extends,java中的类是单一继承,接口是多继承。
继承是指子类可以直接复用父类的代码,减少代码的冗余。
**多态:**分为对象多态和行为多态
对象多态:说人话就是一个对象可以以多种形态出现。
(1)对象的多态,举例如下:

class GrandPa{   }
 class Father extends  GrandPa{}
 class Son extends Father{}
 new Son();             -- new了一个对象,看她可以以那些形态出现
 Son  s  =  new Son();  -- 可以以自己本类的形
 Father f = new Son();  -- 可以以向上造型的方式出现 
                              也就是父类引用指向子类对象
 GrandPa g = new Son();--还可以继续以父类的父类的形态出现

在JAVA中对象多态有什么好处:

public void test1( Father f ){  } 
public void test2(Son s ){  } 
public void test3(GrandPa g){   }

例如,以上代码,声明了三个方法,分别要求传入的参数类型都不一样,但是由于oop对多态的支持,为了简化代码,其实可以只声明test3()这个方法。在传入参数时,只要是GrandPa这一脉相承的类的对象,都可以灵活使用该方法。

public void test3(GrandPa g){  }
text3(new son());
text3(new Father());
text3(new GrandPa());

行为多态:就是指方法的重载和重写。
指一个方法可以以多种形态出现。
静态方法不支持重写
1)重载:发生在同一个类中,方法名一样,参数列表不同(参数的个数,类型,顺序),返回值可以相同也可以不同。发生在编译期。

public void test( ){  }
public void test(int a ){  }  // 是重载
public void test(int b ){    }   //不是重载,类型一样
public void test(int b ,int c){    } //算重载,参数个数不一样
public void test(int b ,String  c){    } //算重载,类型不一样
public void test(String  c,int b ){    }//算重载 ,顺序不一样

如上代码所展示的,一个test方法,可以以6种形态出现,这就是行为的多态。

2)重写:方法名一样,参数一样,遵循两同两小一大的原则。发生在父子类中,发生在运行时。
两同:方法名一样,参数一样
两小: - 1.子类方法抛出的异常要比父类的小,或者一样;- 2.返回值如果是基本数据类型,子类的要和父类的一样。返回值如果是引用类型,子类要比父类的小,或者一样。
一大: 访问权限子类要比父类的大,或者一样。
Father f = new Son();-- 可以以向上造型的方式出现
也就是父类引用指向子类对象
向上造型后,f能点出什么,要看等号前的类型;
但是方法重写后,运行子类的方法还是父类的方法,要看等号后对象的类型。
编译看左边,(对方法进行了重写)运行看右边
多态中不关心具体的子类的类型,会把子类当作父类来看,写出通用代码

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值