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面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法 ...
随机推荐
- Sql server 打不开了,无法识别的配置节 system.serviceModel 解决方案
异常描述: System.Configuration.ConfigurationErrorsException: 配置系统未能初始化 ---> System.Configuration.Conf ...
- openldap+php-ldap操作
一.基础知识首先,如果您对LDAP 不认识,建议先看看[原]LDAP服务介绍一文.本文以Linux 下常用的OpenLDAP为例说明.LDAP 以数方式存放数据,每个节点可存放属性或作为下面节点的父节 ...
- RAC集群节点故障模拟测试
RAC节点故障模拟测试 重启单个RAC 节点模拟测试模拟操作步骤使用shutdown –Fr的方式重启节点,查看系统反应和数据库重新启动的时间.预期测试结果重启单个节点,vip将会切换到另外一个节点. ...
- 记一次Project插件开发
一.开发背景 最近在使用微软的Office Project 2010 进行项目管理,看到排的满满的计划任务,一个个地被执行完毕,还是很有成就感的.其实,不光是在工作中可以使用Project进行项目进度 ...
- sql的case when then else end 的语法实现列转行
SELECT * FROM test5 ; RESOURCES DATETIME CNT ID1 0 2018-01-22 4 12 0 2018-01-24 10 23 0 2018-01-25 2 ...
- Post And Get接口测试
public class TestPost { public static String do_post(String url, Map<String, String> params) ...
- IOS数据持久化之归档NSKeyedArchiver, NSUserDefaults,writeToFile
//2.文件读写 //支持:NSString, NSArray , NSDictionay, NSData //注:集合(NSArray, NSDictionay)中得元素也必须是这四种类型, 才能够 ...
- 贪玩ML系列之一个BP玩一天
手写串行BP算法,可调batch_size 既要:1.输入层f(x)=x 隐藏层sigmoid 输出层f(x)=x 2.run函数实现单条数据的一次前馈 3.train函数读入所有数据for循环处理 ...
- HTTP请求 蜘蛛的 user-agent
百度爬虫 * Baiduspider+(+http://www.baidu.com/search/spider.htm”) google爬虫 * Mozilla/5.0 (compatible; Go ...
- Andrew Ng机器学习编程作业:Anomaly Detection and Recommender Systems
作业文件 machine-learning-ex8 在本次练习,第一节我们将实现异常检测算法,并把它应用到检测网络故障服务器上.在第二部分,我们将使用协同过滤来构建电影推荐系统. 1. 异常检测 在这 ...