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继承总结(二)相关推荐

  1. java 继承 冒号_java继承(extends)简单介绍

    继承相信很多人都有听说过,继承是面向对象的三个基本特征之一,下面的话就一起通过简单的文章来对java继承进行一下了解吧. 继承和现实生活中的"继承"的相似之处是保留一些父辈的特性, ...

  2. java 继承关键字_Java继承

    继承的概念 继承是Java面向对象编程的基石,因为它允许创建分等级层次的类. 生活中的继承: 类的继承格式 class 父类{ } class 子类 extends 父类{ } 继承类型 需要注意的是 ...

  3. java子类继承错误_java继承会犯的小错误

    注意事项:阅读本文前应该先了解java的继承.本文定位为已经继承基础知识. 一:试图覆盖私有方法 先上代码 1 public classFather {2 3 private voidprint() ...

  4. java 类继承实例_java继承例子代码,java类的继承示例

    下面要给大家带来的是一个java类的继承的例子,一起来看看详细的代码吧! 一.题目 1.定义一个Person类,这个类的属性有三个,分别是name.age.color. 类有构造方法给三个属性赋值. ...

  5. java的继承实例_Java继承和多态实例

    我们知道面向对象的三大特性是封装.继承和多态.然而我们有时候总是搞不清楚这些概念.下面对这些概念进行整理, 为以后面向抽象的编程打下坚实的基础. 封装的概念还是很容易理解的.如果你会定义类,那么相信你 ...

  6. java的继承实例_java继承(实例讲解一)

    Java继承(Java inheritance) Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类.这种技术使 ...

  7. java多态 覆盖_Java ------ 继承、方法覆盖、多态

    一.什么是继承 面向对象的三大特性: 封装. 继承.多态: 继承就是子类型将父类型的的属性继承到自己类中进行使用,通过继承的方式子类型可以使用父类型的属性和方法,并且,继承只能单重继承,无法多继承,但 ...

  8. java狐狸游戏_Java继承

    一种类与类之间的关系 使用已存在的类的定义作为基础建立新类 新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类 子类只能继承一个父类 package com.imooc. ...

  9. java 成员函数_Java继承中成员变量和成员函数的覆盖

    关于继承中变量和方法的覆盖: 1, 与基类中同名的变量,会被派生类所覆盖(同时存在但是有独立的值),直接取值将是派生类的值,但是基类的变量也是同时存在的.如果通过派生类函数访问,得到派生类的值.如果通 ...

最新文章

  1. 相参、相参积累和相参雷达
  2. mysql中decimal不能为空吗_程序员,知道Mysql中事务ACID的原理吗?
  3. 跟我一起学docker(17)--多节点mesos集群
  4. php 设为首页 收藏_如何在网站上添加“设为首页”“加入收藏”
  5. leetcode/力扣 贪心算法总结,代码随想录PDF下载
  6. vscode使用:tab键插入空格而不是tab
  7. OpenCV图像处理基础操作(3)
  8. 练习:《斗鱼视频》m3u8流视频采集下载+思路+Python
  9. MacBookPro制作Windows 11 U盘启动盘
  10. 基于神经网络的房价预测,房价预测 神经网络
  11. ESD介绍及TVS的原理和应用-USB等
  12. 记一次菜鸟网络电话面试
  13. HTML+CSS 网页排版 笔记
  14. .NET Reflector Visual Studio Extension
  15. 文明重启服务器维护中怎么办,【FAQ】文明重启常见问题大全
  16. 将颜色值转为rgba值
  17. 基于python实现的猿眼电影订票系统
  18. 【ant design vue】 生成表格序号
  19. Radeon Gpu源码分析
  20. AD 多边形 圆形 快速覆铜

热门文章

  1. python教程:实现延时回调普通函数的方法
  2. python删除指定文件夹下文件和文件夹的方法
  3. python:array和list转换以及数组切片
  4. Python字典的排序方法,你用对了吗
  5. python 如何判断一组数据是否符合正态分布
  6. UNIX Domain Socket(UDS)是什么?同一台主机间进程间通信
  7. pip list和pip freeze的区别(列出所有包,列出包的requirements格式)
  8. Intel Realsense D435 连续验证 摄像头初始化 hardware_reset() 失败案例
  9. python 如何从列表中剔除(去除)重复元素?set()
  10. Zookeeper+kafka集群搭建,问题(zoo.cfg file is running,it‘s probably not running,option ‘UseCompressedOops‘)