java学习笔记(1)

java 的传值,是值调用而非引用调用 (见图片)


抽象关键字abstract不可以和哪些关键字共存?


final:如果方法被抽象,就需要被覆盖而final是不可以被覆盖,所以冲突。
private:如果函数被私有了,子类无法直接访问,怎么覆盖呢?
static:不需要对象,类名就可以调用抽象方法。而调用抽象方法没有意义。
static 详解 :http://blog.csdn.net/chenssy/article/details/13004291
http://blog.csdn.net/wei_zhi/article/details/52767651  也就是说,static后的是定死的,不随变量的变化而变化


http://blog.csdn.net/chenssy/article/details/12786385
指向子类的父类引用由于向上转型了,它只能访问父类中拥有的方法和属性,而对于子类中存在而父类
中不存在的方法,该引用是不能使用的,尽管是重载该方法。若子类重写了父类中的某些方法,在调用
该些方法的时候,必定是使用子类中定义的这些方法(动态连接、动态调用)。 也就是说调用父类的方
法,若父类的该方法被子类重写,则调用子类方法,若父类的方法被重载,则调用父类方法,不能调用

父类没有的方法。


public class Wine {  
    public void fun1(){  
        System.out.println("Wine 的Fun.....");  
        fun2();  
    }  
      
    public void fun2(){  
        System.out.println("Wine 的Fun2...");  
    }  
}  
  
public class JNC extends Wine{  
    /** 
     * @desc 子类重写父类方法 
     *        父类中不存在该方法,向上转型后,父类是不能引用该方法的 
     * @param a 
     * @return void 
     */  
    public void fun1(String a){  
        System.out.println("JNC 的 Fun1...");  
        fun2();  
    }  
      
    /** 
     * 子类重写父类方法 
     * 指向子类的父类引用调用fun2时,必定是调用该方法 
     */  
    public void fun2(){  
        System.out.println("JNC 的Fun2...");  
    }  
}  
  
public class Test {  
    public static void main(String[] args) {  
        Wine a = new JNC();  
        a.fun1();  
    }  
}  
-------------------------------------------------  
Output:  
Wine 的Fun.....  
JNC 的Fun2...  


个程序中子类JNC重载了父类Wine的方法fun1(),重写fun2(),而且重载后的fun1(String a)与 fun1()


不是同一个方法,由于父类中没有该方法,向上转型后会丢失该方法,所以执行JNC的Wine类型引用是不


能引用fun1(String a)方法。而子类JNC重写了fun2() ,那么指向JNC的Wine引用会调用JNC中fun2()方


法。


Java实现多态有三个必要条件:继承、重写、向上转型。
         继承:在多态中必须存在有继承关系的子类和父类。
         重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法。
         向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才能够具备技能调用
类的方法和子类的方法。




http://blog.csdn.net/changhenshui1990/article/details/69943363?locationNum=5&fps=1




总结
·       有默认实现的方法,使用抽象类
·       实现多重继承,必须使用接口。
·       基本功能频繁变化,使用抽象类。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值