Java中的继承
2023-12-21 23:17:48
什么是继承
Java中提供了一个关键字extends,用这个关键字,可以让一个类和另一个类建立起父子关系。
//父类
public class A {
//公开成员
public int i;
public void print1() {
System.out.print("print1")
}
//私有成员
private int j;
private void print2() {
System.out.println("print2")
}
}
//子类
public class B extends A {
// 子类可以继承父类的非私有成员
public void print3() {
System.out.println(i);
print1();
}
}
A类称为父类(基类或超类);
B类称为子类(派生类)
继承的特点
- 子类能继承父类的非私有成员(成员变量、成员方法)
Java里的继承指的是能用的意思,子类继承父类非私有的成员意思是可以直接用父类非私有的成员。如:
A中的int i
和 print1()
成员变量和方法都用public修饰(非私有),可以被子类B直接使用;
A中的int j
和 print2()
成员变量和方法都用private修饰(私有的),不可以被子类B继承使用;
继承后对象的创建
- 子类的对象是由子类、父类共同完成的。
对象能访问什么变量是由子父类共同决定的
继承的好处与应用场景
- 减少重复代码的编写
如何优化?
将这两个类的共同代码放到一个类里,让Teacher和Consultant都去继承。
继承相关注意事项
权限修饰符
用来限制类中的成员(成员变量、成员方法、构造器、代码块…)能够被访问的范围。
- public
- private
- protected
- 缺省
单继承、Object类
Java是单继承,只能继承一个父类,不支持多继承,但可以多层继承。
Object类是Java中所有类的祖宗,任何一个类其实都是Object的子类或子孙类。
方法重写
什么是方法重写
当子类觉得父类中的某个方法不好用,或者无法满足自己的需求时,子类可以重写一个方法名称、参数列表一样的方法,去覆盖父类的这个方法。
重写后,方法的访问,Java会遵循就近原则。
对象在调用方法时,就会调用B中的print函数,而不是A的
注意事项:
- 重写小技巧:使用Override注解,他可以指定Java编译器,检查方法重写格式是否正确,代码可读性增强;
- 子类重写父类方法时,访问权限必须大于或者等于父类该方法的权限(public>protected>缺省)
- 重写的方法返回值类型,必须与被重写的方法的返回值类型一样,或者范围更小;
- 私有方法、静态方法不能被重写,如果重写会报错的。
子类中访问其他成员的特点
1、在子类方法中访问其他成员(成员变量、成员方法),是依照就近原则的。
2、如果一定需要访问父类的成员,使用super关键字调用
子类构造器的特点
文章来源:https://blog.csdn.net/weixin_45427596/article/details/135139918
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!