JAVA类的全面总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Dian1pei2xiao3/article/details/82686295

java是面向对象:

下面解释什么面向对象

JAVA操作都是类中操作如上图Cat类,实例化可以在main函数中

那么java本身就是类操作,为什么还要学习继承多态接口包?

官方回答:可读性强,安全性高,代码简化,维护性高,方便查找错误等

下面我要从现实生活的角度去说,(仅个人观点):

从现实世界中来,必然也要归回现实生活,这是自然法则,那么编成也不例外,我们生活中分类例子比比皆是,例如:动物类-----》 无脊椎和脊椎-----》中又可以分为----》爬行类,两栖类。。。。。。。。为了更好的用编程语言刻画自然界,显然一个类是可以得,但是没有遵循人类的天生分类记忆策略,因此有了继承(子父类),父类表示animal类,cat类表示子类,cat类继承了animal类的属性和方法,那么在继承的同时,cat类会进化 学习,

上面猫类继承了动物类,但是它不仅有animal类的属性和行为,自己还会有其他fly,在cat类中,它的吃的东西可能比animal多,如果cat类操作本类中的eat方法,则用this关键字,如用animal类中,用super关键字

this和super关键字的用法解释:

this只用于类内,而super用于子父类间或abstract类中;

this指向自己的引用;super实现对父类成员的访问,用来引用当前对象的父类

在上图animal类中的name,和age都是private,那么要对name,age操作就需要同过 get,set操作,把get/set这个方法称为封装;

JAVA封装:包装隐藏方法,防止该类的代码和数据被外部修改

cat中的eat()方法与anmial中的eat()方法同名,那么 这里就会出现了类中的方法重写(override);

通常重写(override)与重载(overload)都是面试笔试的重点,下面分别说明他们的规则:

重写规则:

  1. 参数列表相同,返回值相同
  2. 访问权限不能比父类中被重写的方法的访问权限更低(访问限定符:低-------->高   :public -->default---->protected------>private),且必须在同一 包中
  3. 父类成员方法只能被它的子类重写
  4. 声明为final的方法不能被重写
  5. 声明为static的方法不能被重写,但是能被再次声明
  6. 构造方法不能被重写
  7. 当需要在子类中调用父类的被重写方法时,要使用super关键字

重载规则:

  1. 重载是一类中,方法名相同,而参数不同,返回类型可以相同也可以不同
  2. 每个重载的方法都必须有一个独一无二的参数类型列表
  3. 最重用的是构造器重载
  4. 被重载的方法可以改变:1.参数列表;2.返回类型,3.访问修饰符;4.声明新的或更广的检查异常
  5. 返回值不能作为重载函数的区分标准

方法的重写和重载是Java多态性的不同表现,重写是父类与子类之间多态性的一种表现,重载可以理解为 多态的具体表现形式

那么为什么要有重载和重写方法,同多态一起解释原因:

多态:

在多态中必包含重写,继承,父类引用指向子类对象

下面代码一目了然多态的使用:

animal a=new cat();  //向上转型

a.eat();//调用cat的eat

cat b=(cat) a// 向下转型

b.fly();//调用的是cat的fly

对于向上转型:a引用是animal,因此在编译时,会在animal中 找eat方法如果有编译通过,如果没有会报编译错误,通过之后jvm会调用cat中的eat方法

猜你喜欢

转载自blog.csdn.net/Dian1pei2xiao3/article/details/82686295
今日推荐