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面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法 ...
随机推荐
- [工具04]java实现获取鼠标的坐标
本篇博客其实没什么难度可言,在这里分享给大家,是因为有时候我们需要这个工具,java作为跨平台语言的优势在这个软件就可以体现出来,不需修改就可以在windows.mac.linux上使用这个软件. 这 ...
- pl/sql 实例精解 04
本章主要讨论, IF 语句的应用. 1: if condition1 then 2: statement1 3: elsif condition2 then 4: statement2 5: else ...
- Enterprise Architect UML建模
UML建模 前言 UML建模资料已经很多了,有人想用有人不用,有人会用也有人不会用,本文只是作者的一篇UML建模总结,不想去写太细,因为真正的你去用下,去画下就基本都会了.工具毕竟是工具,设计和思想才 ...
- highCharts图表应用-模拟心电图
通过前两章的学习,相信大家对highcharts已经有了初步的了解.这一章将通过一个例子来模拟Highcharts如何实现经常变化的数据显示. 比如说股票的涨停.实时篮球比分以及A选手和B选手的支持率 ...
- SPAF模板
#include <iostream> #include <cstring> #include <queue> #include <cstdio> #d ...
- 64、具有过渡动画效果的布局Layout( 2 )
[ CoordinatorLayout-与手势完美结合的滑动视图 ] [ AppBarLayout-可以随手势滑动的AppBar ] <android.support.design.widget ...
- 认识tornado(四)
接下来我们看一下helloword.py的唯一一个handler. 1 class MainHandler(tornado.web.RequestHandler): 2 def get(self): ...
- 爬虫实战【10】利用Selenium自动登陆京东签到领金币
今天我们来讲一下如何通过python来实现自动登陆京东,以及签到领取金币. 如何自动登陆京东? 我们先来看一下京东的登陆页面,如下图所示: [插入图片,登陆页面] 登陆框就是右面这一个框框了,但是目前 ...
- MySQL安装和Navicat安装、破解
1)mysql下载 地址:https://dev.mysql.com/downloads/mysql/ 2)一路next安装,安装好后文件目录如下(不包括data文件夹,my.ini文件) 3)新建文 ...
- HYSBZ 3676 回文串 (回文树)
3676: [Apio2014]回文串 Time Limit: 20 Sec Memory Limit: 128 MB Submit: 1680 Solved: 707 [Submit][Stat ...