• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Jay_zhen
博客园    首页    新随笔    联系   管理    订阅  订阅
OOP特征二:inheritance继承

继承inheritance:

class A extends B{}

  • A:子类、派生类、subclass
  • B:父类、超类、基类、superclass

子类不能继承父类中私有private的成员变量和方法
只支持单继承(一父一子)和多层继承(一父多子)
所有的java类(除java.lang.Object类之外)都直接或间接的继承于java.lang.Object类

假设父类和子类都在同一个包下:

点击查看**父类Parent**代码
public class Parent {
    private int f1 = 1;
    int f2 = 2;
    protected int f3 = 3;
    public int f4 = 4;

    private void fm1()   {System.out.println("in fm1() f1="+ f1); }
    void fm2()           {System.out.println("in fm2() f2="+ f2); }
    protected void fm3() {System.out.println("in fm3() f3="+f3); }
    public void fm4()    {System.out.println("in fm4() f4="+ f4); }

}
点击查看**子类Child**代码
public class Child extends Parent {
    private int c1 = 21;
    public int c2 = 22;

    private void cm1(){ System.out.println("in cm1() c1="+ c1); }
    public void cm2(){ System.out.println("in cm2() c2="+ c2); }

    public static void main(String[]args) {
        int i;
        Parent p = new Parent();
        i = p.f2; //i = p.f3; i = p.f4;
        p.fm2();

        Child c = new Child();
        i = c.f2; //i = c.f3;i = c.f4;
        i = c.c1; //i = c.c2;
        c.cm1(); // c.cm2();c.fm2(); c.fm3(); c.fm4()
    }
}

方法重写(override/overwrite)重置覆盖
因为static的方法是属于类的,子类无法覆盖父类的方法,同时声明为static的不是重写!

posted on 2021-12-29 09:36  Jay_zhen  阅读(49)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3