JAVA类的继承、覆写和final关键字

extends不用多说,是来继承的关键字,但它有几个要点:
  1. java不允许多重继承(一个类只能继承一个父类,不能继承多个父类)
  2. 派生类会继承基类所有属性和方法,但不能直接访问基类的private私有属性
  3. 实例化派生类时,会先去调用父类的构造方法构造基类,再实例化自身的属性类对象,最后才是调用自身类构造方法.
  4. 在派生类中,有个隐藏的super,表示为基类,所以我们可以通过它指定如何构造基类
JAVA继承方法总结

重写方法的时候,要注意方法的权限,返回值,以及参数部分一致

class txxx
{
         public void func(int i)
         {
                  System.out.println("Parent::func()");
         }
}

class Derived extends txxx
{
         public void func(int i)              //覆写父类的func方法
         {
                  System.out.println("Derived::func()");
         }
}

public class AT{
                  public static void main(String args[]){
                  Derived d = new Derived();
                  d.func(1);
         }       
}

如果派生类覆写的基类方法是private的,则不能实现覆写功能,因为基类的private方法是不可见的,派生类覆写方法,一般用于基类的方法不满足当前派生类功能实现时,才会去覆写.
class Parent
{
         public void func()
         {
                  System.out.println("Parent::func()");
         }
         public void print()
         {
                  func();
         }
}

class Derived extends Parent
{
         public void func()            //覆写父类的func方法
         {
                  System.out.println("Derived::func()");
         }
}

public class Test{
                  public static void main(String args[]){

                  Derived d = new Derived();
                  d.print();
         }       

}
如果将public void func()改为private void func()的话,则无法实现覆写
当在某个类的方法前面定义final时,则表示该方法不允许在子类里进行方法覆写(可以实现方法重载)
在java中,final被称为终结器, final可以修饰变量,方法和类.
class A {
         public final void fun() {}       //此方法不允许子类覆写
         public void fun(int i) {}        //可以实现方法重载
}

class B extends A {
         public void fun() {}            // 错误:此处不允许覆写
}
就是有final了,你就不能在子类里面覆写了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值