java继承总结_java继承总结(二)
java学习笔记
1.继承
关键字:
extends
在 Java 中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类,所以extends只能继承一个类.
eg:
public class Penguin extends Animal
{
}
implements
使用 implements 关键字可以变相的使java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口(接口跟接口之间采用逗号分隔)。
eg :
public interface A {
public void eat();
public void sleep();
}
public interface B {
public void show();
}
public class C implements A,B {
}
2.super 与 this 关键字
super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。
this关键字:指向自己的引用。
3. final关键字
final 关键字声明类可以把类定义为不能继承的,即最终类;或者用于修饰方法,该方法不能被子类重写:
声明类:
final class 类名 {//类体}
声明方法:
修饰符(public/private/default/protected) final 返回值类型 方法名(){//方法体}
4.构造器
子类不能继承父类的构造器(构造方法或者构造函数),但是父类的构造器带有参数的,则必须在子类的构造器中显式地通过super关键字调用父类的构造器并配以适当的参数列表。
如果父类有无参构造器,则在子类的构造器中用super调用父类构造器不是必须的,如果没有使用super关键字,系统会自动调用父类的无参构造器。
实例
class SuperClass {
private int n;
SuperClass(){
System.out.println("SuperClass()");
}
SuperClass(int n) {
System.out.println("SuperClass(int n)");
this.n = n;
}
}
class SubClass extends SuperClass{
private int n;
SubClass(){
super(300);
System.out.println("SubClass");
}
public SubClass(int n){
System.out.println("SubClass(int n):"+n);
this.n = n;
}
}
public class TestSuperSub{
public static void main (String args[]){
SubClass sc = new SubClass();
SubClass sc2 = new SubClass(200);
}
}
输出结果为:
SuperClass(int n)
SubClass
SuperClass()
SubClass(int n):200
修饰符
default(即缺省,什么也不写):在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
public: 对所有类可见。使用对象:类、接口、变量、方法
protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。
1.声明为私有访问类型的变量只能通过类中公共的 getter 方法被外部类访问。2.Private 访问修饰符的使用主要用来隐藏类的实现细节和保护类的数据。
3.如果几个相互访问的 public 类分布在不同的包中,则需要导入相应 public 类所在的包。由于类的继承性,类所有的公有方法和变量都能被其子类继承。
4.被声明为 protected 的变量、方法和构造器能被同一个包中的任何其他类访问,也能够被不同包中的子类访问。
protected 访问修饰符不能修饰类和接口,方法和成员变量能够声明为protected,但是接口的成员变量和成员方法不能声明为protected。
子类能访问 protected 修饰符声明的方法和变量,这样就能保护不相关的类使用这些方法和变量。
父类中声明为 public 的方法在子类中也必须为public。
父类中声明为 protected 的方法在子类中要么声明为protected,要么声明为public,不能声明为private。
父类中声明为 private 的方法,不能够被继承。
非访问修饰符
为了实现一些其他的功能,Java 也提供了许多非访问修饰符。
static 修饰符,用来修饰类方法和类变量。
final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。
abstract 修饰符,用来创建抽象类和抽象方法。
synchronized 和volatile修饰符,主要用于线程的编程。
java继承总结_java继承总结(二)相关推荐
- java 继承 冒号_java继承(extends)简单介绍
继承相信很多人都有听说过,继承是面向对象的三个基本特征之一,下面的话就一起通过简单的文章来对java继承进行一下了解吧. 继承和现实生活中的"继承"的相似之处是保留一些父辈的特性, ...
- java 继承关键字_Java继承
继承的概念 继承是Java面向对象编程的基石,因为它允许创建分等级层次的类. 生活中的继承: 类的继承格式 class 父类{ } class 子类 extends 父类{ } 继承类型 需要注意的是 ...
- java子类继承错误_java继承会犯的小错误
注意事项:阅读本文前应该先了解java的继承.本文定位为已经继承基础知识. 一:试图覆盖私有方法 先上代码 1 public classFather {2 3 private voidprint() ...
- java 类继承实例_java继承例子代码,java类的继承示例
下面要给大家带来的是一个java类的继承的例子,一起来看看详细的代码吧! 一.题目 1.定义一个Person类,这个类的属性有三个,分别是name.age.color. 类有构造方法给三个属性赋值. ...
- java的继承实例_Java继承和多态实例
我们知道面向对象的三大特性是封装.继承和多态.然而我们有时候总是搞不清楚这些概念.下面对这些概念进行整理, 为以后面向抽象的编程打下坚实的基础. 封装的概念还是很容易理解的.如果你会定义类,那么相信你 ...
- java的继承实例_java继承(实例讲解一)
Java继承(Java inheritance) Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类.这种技术使 ...
- java多态 覆盖_Java ------ 继承、方法覆盖、多态
一.什么是继承 面向对象的三大特性: 封装. 继承.多态: 继承就是子类型将父类型的的属性继承到自己类中进行使用,通过继承的方式子类型可以使用父类型的属性和方法,并且,继承只能单重继承,无法多继承,但 ...
- java狐狸游戏_Java继承
一种类与类之间的关系 使用已存在的类的定义作为基础建立新类 新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类 子类只能继承一个父类 package com.imooc. ...
- java 成员函数_Java继承中成员变量和成员函数的覆盖
关于继承中变量和方法的覆盖: 1, 与基类中同名的变量,会被派生类所覆盖(同时存在但是有独立的值),直接取值将是派生类的值,但是基类的变量也是同时存在的.如果通过派生类函数访问,得到派生类的值.如果通 ...
最新文章
- 相参、相参积累和相参雷达
- mysql中decimal不能为空吗_程序员,知道Mysql中事务ACID的原理吗?
- 跟我一起学docker(17)--多节点mesos集群
- php 设为首页 收藏_如何在网站上添加“设为首页”“加入收藏”
- leetcode/力扣 贪心算法总结,代码随想录PDF下载
- vscode使用:tab键插入空格而不是tab
- OpenCV图像处理基础操作(3)
- 练习:《斗鱼视频》m3u8流视频采集下载+思路+Python
- MacBookPro制作Windows 11 U盘启动盘
- 基于神经网络的房价预测,房价预测 神经网络
- ESD介绍及TVS的原理和应用-USB等
- 记一次菜鸟网络电话面试
- HTML+CSS 网页排版 笔记
- .NET Reflector Visual Studio Extension
- 文明重启服务器维护中怎么办,【FAQ】文明重启常见问题大全
- 将颜色值转为rgba值
- 基于python实现的猿眼电影订票系统
- 【ant design vue】 生成表格序号
- Radeon Gpu源码分析
- AD 多边形 圆形 快速覆铜
热门文章
- python教程:实现延时回调普通函数的方法
- python删除指定文件夹下文件和文件夹的方法
- python:array和list转换以及数组切片
- Python字典的排序方法,你用对了吗
- python 如何判断一组数据是否符合正态分布
- UNIX Domain Socket(UDS)是什么?同一台主机间进程间通信
- pip list和pip freeze的区别(列出所有包,列出包的requirements格式)
- Intel Realsense D435 连续验证 摄像头初始化 hardware_reset() 失败案例
- python 如何从列表中剔除(去除)重复元素?set()
- Zookeeper+kafka集群搭建,问题(zoo.cfg file is running,it‘s probably not running,option ‘UseCompressedOops‘)