Java面向对象—继承
概述:
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(..)调用其他构造,让其他构造去访问父类构造.
继承中成员方法关系
同名:子类对象调用的是子类的方法.
方法重写:子类中出现了和父类中一模一样的方法声明,也被称为方法覆盖,方法复写。
重写和重载的区别:
重载的特点:在同一类中。方法名相同,参数列表不同。
重写的特点:要有继承关系。在子父类中方法的声明相同(方法名和参数列表都相同)。覆盖 时,子类方法访问权限不能小于父类方法的访问权限。静态只能覆盖静态。
Java面向对象—继承的更多相关文章
- Java面向对象 继承(下)
Java面向对象 继承(下) 知识概要: (1)抽象类 1.1 抽象类概述 1.2 抽象类的特点 ...
- Java面向对象 继承(上)
Java面向对象 继承 知识概要: (1)继承的概述 (2)继承的特点 (3)super关键字 (4)函数覆盖 (5) 子类的实例化过程 (6) final关键字 (1)继承 ...
- Java面向对象㈡ -- 继承与多态
Java的继承是通过extends和implement来实现的,Java不支持多继承,但是Java支持多层继承以及多实现(接口).Java继承有一个关键字super是用来指向父类.Java继承衍生出覆 ...
- java面向对象--继承与多态
可以为一个变异单元中的每个类创建一个main方法,只有命令行所调用的那个类的main方法才会被调用,这样方便进行单元测试.继承时,一般将所有的数据成员都指定为private,将所有的方法指定为publ ...
- JAVA面向对象-----继承
类和类之间的常见关系. 既然继承是描述类和类之间的关系,就需要先来了解类和类之间的常见关系 现实生活的整体与部分 举例说明 现实生活 学生 是人 狗 是动物 球队 包含 球员 整体与部分的关系,部分可 ...
- java 面向对象 — 继承
继承中的构造方法,先执行父类中的构造方法,然后执行子类中的构造方法 继承中的属性,最后执行的属性 覆盖前面的属性 因为是开辟了 两个内存空间,所以相比较是不同的. 如果想比较两个对象的值是否相同的话, ...
- Java面向对象----继承概念,super关键字
继承概念: 继承需要符合的关系 is-a , 父类通用更抽象,子类更特殊更具体 类之间的关系 继承体现 组合体现 实现接口体现 继承的意义 代码重用 体现不同抽象层次 extends关键字 Sup ...
- java面向对象三大特性之继承
通过重用已经测试并验证通过的代码,怎样才减少开发工作,所有开发团队都在为一问题而努力.一个久经考验的方法是通过有效地使用Java继承优化应用程序开发. 继承的从某种意义上讲,继承的短暂美就如同宇宙中所 ...
- Java面向对象(二、继承)
Java 继承 继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法 ...
随机推荐
- ffmpeg 日志系统av_log()
一般使用Error, Warning, Debug3个级别即可(见下面的颜色).AV_LOG_QUIET 核心函数只有一个:av_log().使用av_log()在控制台输出日志的效果如下图所示. a ...
- Oracle常用命令大全
一.ORACLE的启动和关闭 1.在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a.启动ORACLE系统 oracle>svrmgrl ...
- python 多线程糗事百科案例
案例要求参考上一个糗事百科单进程案例 Queue(队列对象) Queue是python中的标准库,可以直接import Queue引用;队列是线程间最常用的交换数据的形式 python下多线程的思考 ...
- DMSFrame 之查询表达式用法(一)
where条件 WhereClip<Adm_User> where = new WhereClip<Adm_User>(q => q.DeleteFlag == fals ...
- MAC Ruby版本需要升级至2.2.2以上
第一例: 默认情况下,Mac OS X 系统已经安装好 Ruby(最新的 Mavericks 随机的 Ruby 版本为 2.0.0p247),安装在 /System/Library/Framework ...
- Linux服务器 大量的CLOSE_WAIT、TIME_WAIT解决办法
http://itindex.net/detail/50213-%E6%9C%8D%E5%8A%A1%E5%99%A8-time_wait-close_wait http://itindex.net/ ...
- hdu 4294(bfs)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4294 思路:题目的意思是说,给你n,k,则求出n的正整数倍数,使得这个数字在k进制下表示的时候需要的不 ...
- C#中引用类型和值类型分别有哪些
- 《转》适用于开发人员的10个最佳ASP.NET的CMS系统
1) mojoportal mojoPortal 是一个开源的.用 C# 编写的站点框架和内容管理系统,可以运行在 Windows 中的 ASP.NET 和 Linux/Mac OS X 中的 Mon ...
- CSS3的自定义字体@font-face:将图片ICON转为字体
大家都知道现在各个浏览器都支持CSS3的自定义字体(@font-face),包括IE6都支持,只是各自对字体文件格式的支持不太一样.那么对于网站中用到的各种icon,我们就可以尝试使用font来实现, ...