JAVA基础-继承及重写、super关键字

xiaoxiao2025-12-07  6

继承关键字:extends 概念:扩展父类的功能,使用extends关键字完成 代码:class 子类 extends 父类 {}

class Person{ private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void tell() { System.out.println(getName()+getAge()); } } class Student extends Person{//扩展,得到name和age属性 private int score;//学生自有属性 public int getScore() { return score; } public void setScore(int score) { this.score = score; } public void say() { System.out.println(getScore()); } } public class Test01 { public static void main(String[] args) { Student s=new Student(); s.setAge(20); s.setName("张三"); s.setScore(100); s.tell(); s.say(); } }

继承的限制:只允许单继承;子类不能直接访问父类的私有成员 子类对象在实例化之前,必须调用父类中的构造方法,之后调用子类构造方法

class Father{ private String name; private int age; public Father() { System.out.println("123"); } } class Son extends Father{ public Son() { System.out.println("321"); } } public class Test03 { public static void main(String[] args) { Son s=new Son(); } }

输出结果: 123 321 主方法种并未调用方法结果却显示,说明在实例前已调用父类、子类的构造方法

在继承中,存在重写的概念,其实就是子类定义了和父类同名的方法 定义:方法名称、返回值类型、参数都相同 限制:被子类重写方法不能比父类拥有更严格的访问限制(private<不写<public) super:强行调用父类方法

class A{ public void tell() { System.out.println("写方法"); } } class B extends A{ public void tell() { super.tell();//通过super关键字调用父类方法 System.out.println("重写方法"); } } public class Test04 { public static void main(String[] args) { B b=new B(); b.tell(); } }

输出结果: 写方法 重写方法

重写与重载区别 重载存在于一个类中,重写存在于继承关系中 重载:名称相同,其他不同;重写都相同 权限限制不同

转载请注明原文地址: https://www.6miu.com/read-5040476.html

最新回复(0)