Java中的继承
我们在以前的学习中,我们会了C#中的继承,今天我们来了解了解Java中的继承,其实都大同小异啦!
1.语法
修饰符 SubClass extends SuperClass(){
//类定义部分
}
eg:public Dog extends Pet(){
}
我们说Dog继承了Pet
2.那么Dog究竟可以继承Pet类中的什么东西?
01.当这两个类位于同一个包时,Dog类继承Pet类中Public,protected和默认(friendly)访问级别的成员变量和成员方法。
02.当这两个类位于不同一个包时,Dog类继承Pet类中Public和protected访问级别的成员变量和成员方法。(不能继承默认访问级别的)
03.无法继承private修饰的属性和方法。
04.无法继承父类的构造方法。
3.Java中只支持多继承,即每个类只能有一个直接父类,但它可有多个间接父类
4.方法的重写
在子类中可以根据需求对父类继承的方法进行重新编写,称为方法的重写或方法的覆盖
需求:
01.重写方法和被重写方法必须具有相同的方法名。
02.重写方法和被重写方法必须具有相同的参数列表。
03.重写方法的返回值类型必须和被重写方法的返回值类型相同或是其子类。
04.重写方法不能缩小被重写方法的访问权限。
5.super关键字
super代表对当前对象的之前直接父类对象的默认引用。在子类中可以通过super关键字来访问分类的成员。
注意点:
01.super必须出现在子类(子类的方法和构造方法)中,而不是其他位置。
02.可以访问父类的成员,如父类的属性,方法,构造方法。‘
03.注意访问权限的限制,如无法通过super访问private成员。
6.继承关系中的构造方法
eg:Dog类的构造方法
public Dog(String name,String strain){
super.(name);
this.strain=strain;
}
继承条件下的构造方法的调用规则如下:
01.如果子类的构造方法中没有通过super显示调用父类的有参构造方法,也没有通过this显式调用自身的其他构造方法,则系统会默认先调用调用父类的无参构造方法。在这种情况下,有没有“super();”语句,效果都说一样的。
02.如果子类的构造方法中通过super显示调用父类的有参构造方法,则将执行父类相应的构造方法,而不执行父类无参构造方法。
03.如果子类的构造方法中通过this显式调用自身的其他构造方法,则在相应构造方法中应用以上两条规则。
04.特别注意的是,如果存在多继承关系,则在创建一个子类对象时,以上规则会多次向更高一级父类应用,一直到执行父类Object类的无参构造方法为止。
Java中的继承的更多相关文章
- 关于Java中的继承和组合的一个错误使用的例子
[TOC] 关于Java中的继承和组合的一个错误使用的例子 相信绝大多数人都比较熟悉Java中的「继承」和「组合」这两个东西,本篇文章就主要就这两个话题谈论一下.如果我某些地方写的不对,或者比较幼稚, ...
- java中的继承与oc中的继承的区别
为什么要使用继承? 继承的好处: (1)抽取出了重复的代码,使代码更加灵活 (2)建立了类和类之间的联系 继承的缺点: 耦合性太强 OC中的继承 1.OC中不允许子类和父类拥有相同名称的成员变量名:( ...
- <Java中的继承和组合之间的联系和区别>
//Java中的继承和组合之间的联系和区别 //本例是继承 class Animal { private void beat() { System.out.println("心胀跳动...& ...
- extends:类似于java中的继承特征,extends="struts-default"
extends:类似于java中的继承特征,extends="struts-default"就是继承struts-default.xml,它里面定义了许多跳转类型.拦截器等一些常用 ...
- 关于java中的继承
我们都知道Java中的继承是复用代码.扩展子类的一种方式,继承使得Java中重复的代码能够被提取出来供子类共用,对于Java程序的性能以及修改和扩展有很大的意义,所以这是一个非常重要的知识点. 那么对 ...
- Java中的继承、封装、多态的理解
Java中的继承.封装.多态 继承的理解: 1.继承是面向对象的三大特征之一,也是实现代码复用的重要手段.Java的继承具有单继承的特点,每个子类只有一个直接父类. 2.Java的继承通过extend ...
- 浅析 Java 中的继承和重写
浅析 Java 中的继承和重写 Java 中的构造方法不能被继承. Java 中 static 修饰的方法可以被继承,但不能被子类重写. Java 中 final 修饰方法不允许被子类重写,但是可以被 ...
- java中的继承关系
1.定义 java中的继承是单一的,一个子类只能拥有一个父类:java中所有类的父类是java.lang.Object,除了这个类之外,每个类只能有一个父类: 而一个父类可以有多个子类,可以被多个子类 ...
- java中子类继承父类程序执行顺序
java中子类继承父类程序执行顺序 FatherTest.java public class FatherTest { private String name; public FatherTest() ...
随机推荐
- 如何改变Activity在当前任务堆栈中的顺序,Intent参数大全
引用:http://blog.csdn.net/think_soft/article/details/7477072 本示例演示如何通过设置Intent对象的标记,来改变当前任务堆栈中既存的Activ ...
- java-cef系列视频第四集:自定义协议
上一集我们介绍了如何为java-cef添加flashplayer支持. 本视频介绍java-cef中的自定义协议 本作品采用知识共享署名-非商业性使用-禁止演绎 3.0 中国大陆许可协议进行许可.
- [Android界面] 这样的选择器怎么实现?? 充值选择
1 充值的或年纪的 或 1 先讲例子 http://blog.csdn.net/lmj623565791/article/details/48393217: 本文出自:[张鸿洋的博客] 一.概述 ...
- JS - Object and Property的删除用法
在JS中,Object和Property的删除用法: var myObject = {name:'jimmy', age:12, height:123} delete myObject["j ...
- android一键分享功能不使用任何第三方sdk
在android中有自带的一键分享功能,不过它会把所有带分享的应用都找出来,如果我们只需要一些常见的分享应用,该如何做呢? 下面看我的效果图(横屏和竖屏自动适配): 接下来看我的调用(支持图片和文字分 ...
- 10个TWaver 网页3D可视化精彩案例
以下网页3D案例均为TWaver原创出品,推荐使用Chrome, FireFox, Safari等对WebGL支持良好的浏览器运行.案例排名不分先后,如需Demo,可直接申请试用. 1. 化学元素 ...
- android px dp sp
http://www.zcool.com.cn/article/ZMTUxODQw.html
- linux shell 流程控制(条件if,循环【for,while】,选择【case】语句实例 --转载
http://www.cnblogs.com/chengmo/archive/2010/10/14/1851434.html nux shell有一套自己的流程控制语句,其中包括条件语句(if),循环 ...
- 谈论XSS
XSS 叫跨站脚本攻击(Cross Site Script),那么XSS原本应该叫做CSS,但是由于CSS的简称已经被连级样式表 使用了,所以就换个称谓XSS. 为什么叫做跨站脚本攻击呢? 它的意思就 ...
- Mybatis 中在传参时,${} 和#{} 的区别
介绍 MyBatis中使用parameterType向SQL语句传参,parameterType后的类型可以是基本类型int,String,HashMap和java自定义类型. 在SQL中引用这些参数 ...