自学内容网 自学内容网

JAVA零基础小白自学日志——第十九天


今日提要:private\static\final修饰词;同名变量;方法重载和方法重写

1.private(私有)

  • 类不能标记为private,就是所谓的私有类,但在一些特殊的情况下有一种类被称为内部类;虽然类不能被标记为private,但是类依然有访问范围权限,所有不被public修饰的类,都是非公共类,非公共类大多(protected的受众范围稍大)只能被这个类所在的包中的其它类扩展;
  • 被private修饰的方法,再次重复,不会被继承,因为私有方法对外来说不可见,你看见了也是不可见,编译器默认你看不见,虽然都是你写的,你还是看不见,嗯;所以一旦方法被private修饰了,那么这个方法就不存在继承和重写;

2.static(静态)

  • static修饰变量我之前写过了,修饰方法也写过了,不过没涉及到方法的继承和多态
    看段代码吧
public class TestOne {

public static void main(String[] args) {
Animal a = new Wolf();
a.roam();

}

}
class Animal{
public static void roam () {
System.out.println("动物在闲逛");

}
}

class Wolf extends Animal{
public static void roam() {
System.out.println("狼在原地盘桓");
}
}

输出结果:

动物在闲逛
  • 虽然上面代码里面的父类和子类里面有参数、返回值类型、访问权限范围都一样的同名方法,但是却无法完成方法重写,很明显static阻止了方法的重写,这点在写代码时要注意;

3.final(最终)

[1].fianl修饰变量

  • fianl关键字修饰基础类型变量,其值一旦初始化就不可以改变;
  • fianl关键字修饰引用型变量,对其初始化之后,便不能让其指向另一个对象;
  • fianl关键字修饰的都是常量,fianl关键字可以修饰局部变量;

[2].fianl修饰方法

  • fianl关键字修饰的方法不能被子类重写;
  • 当父类方法为fianl关键字修饰的,子类方法不能含有方法名、参数类型、参数个数和参数顺序都一样的方法;
  • 如果父类有fianl关键字修饰的方法,而此方法权限范围修饰为private(私有),这个并不影响子类有相同名称的方法,原因简单,还是那句话,private不能继承,不可见;

[3].fianl修饰类

  • fianl关键字修饰的类为最终类,最终类处于继承链末端,没有子类可以继承终类;
  • fianl关键字修饰的类,它的类内方法也默认为fianl方法;
  • fianl关键字修饰的类中的变量是可以改变的;

[4].为什么需要fianl关键字修饰类和方法

  • 终类其实底层逻辑就是阻止一个类派生子类,但从安全性的角度去考虑,如果你知道一个类的最终执行结果,并且始终按照这个结果执行,而不会被子类重写,那你就需要定义一个终类,Java API中存在大量的终类,例如:String类就是一个fianl,String是不允许随便更改的;
  • fianl修饰方法其实也是一样的逻辑,如果你要保证一个特定的方法不会被重写,你就可以把那个方法标记为fianl,如果一个类中所有的方法都需要避免被重写,那就需要把这个类标记为fianl;

4.private\static\final的共同点

private\static\final关键字修饰的方法和变量,都属于编译期绑定,也就是早期绑定,都起到了,阻止继承的作用

5.同名变量

如果子类拥有和父类一样的变量名,子类变量将屏蔽父类变量的继承,这点很重要,切记,切记!

6.方法重载和方法重写

项目方法重载方法重写
简介重载,只是在同个类中,有相同方法名的不同方法而已,与继承和多态没有任何关系在继承关系中子类方法对父类(超类、基类)方法的覆盖重写
同一个类有继承关系的类
方法名相同相同
方法参数参数个数、类型、顺序都不同参数列表相同
返回值类型可以不同必须相同
调用方式参数决定创建的实际对象决定
绑定早期绑定,编译期绑定后期绑定,动态绑定
private\static\final不影响阻止继承,不会产生重写

真正的Java代码之路,应该说是从继承和多态开始的,这才是面向对象OO的基础知识,预祝大家和我一样学的愉(tou)快(yun);


原文地址:https://blog.csdn.net/mycqyjn/article/details/140529701

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!