继承和重写

继承(extends)

  • 基于已有类(父类)创建新类(子类)的一种方式
  • object类默认为所有类的父类
  • 子类继承父类里的方法
  • JAVA中一个类只能继承一个父类
  • 若一个类由final修饰,则它没有子类 例:String、System、
    基本数据包装类型(int-Interger,Byte,Short,Long,Float,Double
    ,Boolean,CHaracter)
  • 父类中并非所有的方法和成员变量子类都能继承(修饰符private)
  • 子类可以调用父类的成员变量(若两者中有同名的成员变量,则子类调用的是自己的成员变量)
public class father {
    int num;
    String address;
    public void first() {
        System.out.println("function in father");
    }
}

public class son extends father {
    public void second() {
        System.out.println("function in son");
    }
}

public class test {
    public static void main(String[]args ) {
        son s = new son();
        s.first();//子类调用父类对象
        s.second();
    }
}

方法重写

  • 定义:在Java和其他一些高级面向对象的编程语言中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。
  • 重写后的方法可以用override注解修饰
  • 若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数列表(虚参的名字可以不同,其余必须相同),则新方法将覆盖原有的方法。
  • 返回类型:
    a、如果父类中的方法返回类型为void或基本数据类型,则需保持一致
    b、如果父类中的方法返回类型为引用类型,则保持一致或父类方法返回值的子类
  • super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。
    this关键字:指向自己的引用。
  • 重写后方法的访问权限(public protected private)只能大于等于父类的
  • 父类中final、static修饰的方法,子类可继承不可重写
    父类中private修饰的方法,子类不可继承不可重写
  • 子类重写后的方法不能用static修饰
public class father {
    int num;
    String address;
    public void first() {
        System.out.println("function in father");
    }
}

public class son extends father {
    public void second() {
        System.out.println("function in son");
    }
    public  void first() {
        System.out.println("function in father but override");
    }
    void test() {
        this.first();//自己类
        super.first();//父类
    }
}

public class test {
    public static void main(String[]args ) {
        son s = new son();
        s.first();
        s.test();
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值