概述:

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(..)调用其他构造,让其他构造去访问父类构造.

继承中成员方法关系

同名:子类对象调用的是子类的方法.

方法重写:子类中出现了和父类中一模一样的方法声明,也被称为方法覆盖,方法复写。

重写和重载的区别:

重载的特点:在同一类中。方法名相同,参数列表不同。

重写的特点:要有继承关系。在子父类中方法的声明相同(方法名和参数列表都相同)。覆盖 时,子类方法访问权限不能小于父类方法的访问权限。静态只能覆盖静态。

最新文章

  1. npm install报错Error: ENOENT
  2. 【hadoop】——MapReduce解压缩实现
  3. 配置Supervisor开机启动
  4. Linux下Ruby开发配置
  5. hadoop删除节点。
  6. 208. Implement Trie (Prefix Tree)
  7. Servlet&JSP中的知识点
  8. MYSQL知识点
  9. 获取Java的32位MD5实现
  10. ARM应用调试思路、方法总结、笔记
  11. Linxu指令--crond
  12. 好程序员告诉你HTML好在哪里,为什么值得我们学习
  13. topcoder srm 635 div1
  14. java第二周的学习知识3(==与equals)
  15. Andrew Ng机器学习课程笔记(六)之 机器学习系统的设计
  16. 20155223 2016-2017-2 《Java程序设计》第7周学习总结
  17. 理解webpack4.splitChunks
  18. JavaScript(js)处理的HTML事件、键盘事件、鼠标事件
  19. AsyncTask--远程图片获取与本地缓存
  20. idea新建maven项目没有src目录

热门文章

  1. Buffer ByteBuffer 缓冲区
  2. 使用scp命令传输文件
  3. 第一百四十八节,封装库--JavaScript,菜单切换
  4. 【vijos】1789 String(组合计数+奇怪的题)
  5. (转)java中Executor、ExecutorService、ThreadPoolExecutor介绍
  6. 【Raspberry Pi】crontab 定时任务
  7. 网页(aspx)与用户控件(ascx)交互逻辑处理实现
  8. 上传文件ie7
  9. Java版接口自动化--初稿
  10. 《挑战程序设计竞赛》2.4 数据结构-并查集 POJ1182 2236 1703 AOJ2170