Java面向对象—继承
2024-10-19 07:55:33
概述:
1、多个类相同的属性和功能抽取成另一个类, 让具有特有功能的类继承这个类. 2、通过 extends 关键字可以实现类与类的继承
格式:
class 子类名 extends 父类名 {}
特点 :
1、一个类只能有一个父类,不能有多个父类 2、Java 支持多层继承
package cn.czbk.no5; public class TestExtends {
public static void main(String[] args) {
C c=new C();
c.ashow();
c.bshow();
A a=new A();
B b=new B();
a.apshow();
System.out.println(b.a);
}
}
class A{
private int a;
public void ashow(){
System.out.println("A class");
}
private void aprshow(){
System.out.println("A private show不可被外界访问");
}
protected void apshow(){
System.out.println("A protected show");
}
}
class B extends A{
protected String a="protected String";
public void bshow(){
System.out.println("B class");
}
}
class C extends B{}
继承的注意事项
1、子类只能继承父类所有非私有的成员(成员方法和成员变量)
2、子类不能继承父类的构造方法
3、不要为了部分功能而去继承
package cn.czbk.no5; public class TestExtends1 {
public static void main(String[] args) {
CC cc=new CC();
}
}
class AA{
public AA(String a){
System.out.println(a);
}
}
class BB extends AA{
public BB(){
super("abc");//继承AA类的话如果AA有自己定义构造方法的话要在这个地方显示声明
System.out.println("BB cont");
}
}
class CC extends BB{
public CC(){
//会默认调用父类的空参构造方法
System.out.println("CC cont");
}
}
继承中成员变量的关系
this:当前对象的引用
1、this.成员变量
2、this.成员方法(...)
3、this(...)调用自己构造方法
super:当前对象父类对象的引用
1、super.成员变量
2、super.成员方法(...)
3、super(...)调用父类的构造方法
继承中子父类构造方法的关系
1.子类构造默认会访问父类的空参构造, 什么都不写,子类构造默认第一句是 super();
2.如果父类没有空参构造,子类可以显示通过 super(参数列表)语句调用父类带参构造
3.子类构造可以通过 this(..)调用其他构造,让其他构造去访问父类构造.
继承中成员方法关系
同名:子类对象调用的是子类的方法.
方法重写:子类中出现了和父类中一模一样的方法声明,也被称为方法覆盖,方法复写。
重写和重载的区别:
重载的特点:在同一类中。方法名相同,参数列表不同。
重写的特点:要有继承关系。在子父类中方法的声明相同(方法名和参数列表都相同)。覆盖 时,子类方法访问权限不能小于父类方法的访问权限。静态只能覆盖静态。
最新文章
- npm install报错Error: ENOENT
- 【hadoop】——MapReduce解压缩实现
- 配置Supervisor开机启动
- Linux下Ruby开发配置
- hadoop删除节点。
- 208. Implement Trie (Prefix Tree)
- Servlet&JSP中的知识点
- MYSQL知识点
- 获取Java的32位MD5实现
- ARM应用调试思路、方法总结、笔记
- Linxu指令--crond
- 好程序员告诉你HTML好在哪里,为什么值得我们学习
- topcoder srm 635 div1
- java第二周的学习知识3(==与equals)
- Andrew Ng机器学习课程笔记(六)之 机器学习系统的设计
- 20155223 2016-2017-2 《Java程序设计》第7周学习总结
- 理解webpack4.splitChunks
- JavaScript(js)处理的HTML事件、键盘事件、鼠标事件
- AsyncTask--远程图片获取与本地缓存
- idea新建maven项目没有src目录
热门文章
- Buffer ByteBuffer 缓冲区
- 使用scp命令传输文件
- 第一百四十八节,封装库--JavaScript,菜单切换
- 【vijos】1789 String(组合计数+奇怪的题)
- (转)java中Executor、ExecutorService、ThreadPoolExecutor介绍
- 【Raspberry Pi】crontab 定时任务
- 网页(aspx)与用户控件(ascx)交互逻辑处理实现
- 上传文件ie7
- Java版接口自动化--初稿
- 《挑战程序设计竞赛》2.4 数据结构-并查集 POJ1182 2236 1703 AOJ2170