Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > Java基础相关 >

《剑指offer》Java理解静态绑定与动态绑定 PDF 下载


分享到:
时间:2024-01-15 09:49来源:http://www.java1234.com 作者:转载  侵权举报
《剑指offer》Java理解静态绑定与动态绑定
失效链接处理
《剑指offer》Java理解静态绑定与动态绑定  PDF 下载
 
 
 
 
相关截图:


 
主要内容:


静态绑定
在程序运行前,也就是编译时期JVM就能够确定方法由谁调用,这种机制称为静态绑定
识别静态绑定的三个关键字以及各自的理解
如果一个方法由private、Static、final任意一个关键字所修饰,那么这个方法是前期绑定的
构造方法也是前期绑定
private:private关键字是私有的意思,如果被private修饰的方法是无法由本类之外的其他类所调用的,
也就是本类所特有的方法,所以也就由编译器识别此方法是属于哪个类的
public class Person {
private String talk;
private String canTalk(){
return talk;
}
}
class Animal{
public static void main(String[] args) {
Person p = new Person();
// private 修饰的方法是Person类独有的,所以Animal类无法访问(动物本来就不能说话)
// p.canTalk();
}
}
final:final修饰的方法不能被重写,但是可以由子类进行调用,如果将方法声明为final可以有效的关闭
动态绑定
public class Fruit {
private String fruitName;
final String eatingFruit(String name){
System.out.println("eating " + name);
return fruitName;
}
}
class Apple extends Fruit{
// 不能重写final方法,eatingFruit方法只属于Fruit类,Apple类无法调用
// String eatingFruit(String name){
// super.eatingFruit(name);
// }
String eatingApple(String name){
return super.eatingFruit(name);
}
}
static: static修饰的方法比较特殊,不用通过new出某个类来调用,由类名.变量名直接调用该方法,这
个就很关键了,new 很关键,也可以认为是开启多态的导火索,而由类名.变量名直接调用的话,此时
的类名是确定的,并不会产生多态,如下代码:
public class SuperClass {
public static void sayHello(){
System.out.println("由 superClass 说你好");
}
}
public class SubClass extends SuperClass{
public static void sayHello(){
System.out.println("由 SubClass 说你好");
}
public static void main(String[] args) {
SuperClass.sayHello();
SubClass.sayHello();
}
}

 

 

 
 
 
 
 
------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐