JAVA隐式转换和方法重写和static关键字

author : chen ming dong
闲来无事做想玩玩JAVA了 今天碰到点困难,算是完美解决了

package 类;

// static用来修饰类中的变量或方法,成为静态变量,静态方法
// 静态变量对于所有的类对象共享同一个内存空间
// 
public class 隐式类型转换 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Cat myCat = new Cat();      
        Cat.testClass();
        Cat.AtestClass();
        System.out.println( );
        //Cat.testInstance();   //Cat 只能调用类中有 static 的方法
        myCat.testClass();      // Cat 的对象可以调用 类中的一切
        myCat.testInstance();

        System.out.println( );

        Animal myAnimal = myCat;
        Animal.AtestClass();//Animal 只能调用 类中有static 的方法
        //从下面可以看出  只是隐式类型转换了  子类中的 static 部分(换句话说就是,子类中的static只能自己用)

        // static 是在程序执行时,类的字节码文件就加载到内存中去的
        // 没有 static 就不能加载到内存中去,需要操作对象进行加载
        myAnimal.AtestClass();
        // 方法重写的地方,不能转换(还是Cat类中的方法),如果方法没有重写就可以完全转换为Animal类
        myAnimal.testInstance();
    }
}
//创建一个 父类
class Animal{
    public static void AtestClass(){//对这个static方法  只能父类自己用,重命名(ALT+SHIFT+R)子类方法不改变
        System.out.println("Animal中的类方法");
    }
    public void testInstance(){ // 对这个方进行重命名(ALT+SHIFT+R)时,子类的方法也会改变
        System.out.println("Animal中的实例方法");
    }
}
//创建一个子类
class Cat extends Animal{
    public static void testClass(){//不能算是对父类的重写,他根本访问不到父类static的方法
    System.out.println("Cat 中类的方法");
    }
    // 下面这个方法   叫做               父类的重写
    public void testInstance(){
        System.out.println("Cat中类的实例方法");
    }
}

注意:
含有 static 的方法 叫做类方法
没有 static 的方法 叫做实例方法

父类的类方法在子类中也只能是类方法
父类的实例方法在子类中也只能是实例方法

总结:
类方 对 类方
实方 对 实方

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值