Static了解和复习继承。
Static了解
static加在局部变量的前面改变其存储类型使之成为静态局部变量,会延长它的生存周期,但是不会改变其作用域。
静态成员是属于类的,而不是属于某个对象的。即便没有任何一个实例,类的静态成员变量也已经存在了,因此静态成员除了能够和普通成员一样通过对象访问外,还可以通过类名访问。
static函数可以直接调用非静态函数,但是非静态函数不可直接调用静态函数。因为静态成员在类实例化对象之前就已经分配空间了,而非静态成员在类实例化对象之后才有内存空间。
复习:继承
继承的概念:如果有一些共有的属性和方法可以提取到父类中继承父类使用,减少了代码重复,方便了代码的修改,更加的清晰。
在java中继承的关键字是extends,在c#中继承的关键字是冒号‘:’。
子类可以继承父类的那些东西呢?
1.继承public和protectend修饰的属性和方法,因为public是共有的,protectend是包级别的,但是无论子类和父类是否在一个包里都可以继承父类的东西。
2.继承默认权限修饰符修饰的属性和方法,但子类和父类必须在同一个包里。
3.无法继承private修饰的属性和方法。
4.无法继承父类的构造方法。比方说属性和方法是财产,构造是思想,你可以继承父类的财产,但是父类的思想你继承不了。
子类可以重写父类的方法,为满足父类方法满足不了的需求。
例:
//父类 宠物类
public class pet{
//这里为了快捷一点就把变量定义成了public 没有做封装。
public String name;
public int age;
public int sum;
public void print(){
System.out.print("我的名字叫:"+name+“我的年龄”+age+“我与主人的亲密度:”+sum);
}
}
//子类 狗狗类
public class dog{
public String strain;//宠物的品种
public void print(){
super.print();//super语句必须写在方法的第一行。
//父类没有定义品种这个属性而子类有要用到 父类的方法没有打印品种,这个时候子类重写父类方法把要满足的需求填上。这就是重写。。。
system.out.print("我的品种是"+strain);
}
}
实现方法重写满足的要求
1.重写方法和被重写方法必须具有相同的方法名。
2.重写方法和被重写方法必须具有相同的参数列表。
3.重写方法的返回值类型必须和被重写方法的返回值类型相同或是其子类。
4.重写方法不能小于被重写方法的访问权限。
抽象
抽象类和抽象方法都通过abstract关键字来修饰
抽象类不能实例化,抽象类中可以没有,有一个或多个抽象方法,甚至全部方法都可以是抽象方法。
抽象方法只有声明方法,没有实现方法。有抽象方法的类一定是抽象类,子类必须重写所有的抽象方法才能实例化,否则子类也是一个抽象类。
每天进步一点点..
Static了解和复习继承。的更多相关文章
- Java基础再复习(继承、多态、方法内部类**、HashMap用法**、参数传递**)
###继承: package com.shiyan; public class Animal { public int legNum; //动物四肢的数量 //类方法 public void bark ...
- this/super/static/final/匿名对象/继承/抽象类/访问权限修饰符
1.this关键字的作用 1)调用本类中的属性; 2)调用本类中的构造方法;且只能放首行,且必须留一个构造方法作为出口,即不能递归调用 3)表示当前对象; 2.匿名对象 ...
- static关键字续、继承、重写、多态
static关键字 1.对于实例变量,每个java对象都拥有自己的一份,存储在堆内存当中,在构造方法执行的时候初始化. 2.所有对象都拥有同一个属性时,并且值相同,建议声明为static变量. 3.静 ...
- 复习java数据库操作的总结
以前学习java数据库操作,学得那叫糊里糊涂,各种JDBC常用的类和接口根本是傻傻分不清啥是干嘛的.只是套着用用吧. 不过这次好歹清楚些了,呜呜,学习有阶段性,多次重复才有好效果,多么痛的领悟. 工程 ...
- 巩固复习(Django最基础的部分_具体查看官方文档)
Django学习路1 1.脚本不能随便运行,没准 linux 运行完就上不去了 2.pip 在 linux 上 写 pip3 同理 python 写为 python3 3.在 pycharm 上安装库 ...
- java中类继承,到底继承了什么?
继承的最大好处就是为了实现代码的复用.那么,子类到底从父类得到的什么呢? 实例成员 父类的private成员不会被子类继承,子类不能访问.但是子类对象的确包含父类的私有成员. 父类的 包访问成员 继承 ...
- c++primer复习(六)—面向对象编程
1 C++中,通过基类的引用(或指针)调用虚函数时,发生动态绑定,两个条件(基类引用或指针.虚函数)缺一不可 虚函数的默认实参将发生静态绑定 2 继承层次的根类一般都需要定义虚析构函数 3 任意非st ...
- JAVA中的static修饰的方法不能被重写
可以重写静态方法,但重写后的静态方法不支持多态. 其实static根本就没有重写之说.static方法引用的时候应该用类名来引用,而不是对象.同时static方法不参与继承,所以在继承体系里面也不存在 ...
- 对比 PHP 中 new static() 与 new self()
通过new static()与new self()都能产生实例对象,new static()是在PHP5.3版本中引入的新特性,本文对二者稍作对比. 一.当直接通过本类创建实例时 class Test ...
随机推荐
- iOS.redefinition-of-struct-x
Error: Redefinition of struct x Reference
- Rsync未授权访问漏洞的修复
转自:https://www.cnblogs.com/KevinGeorge/p/9648028.html 配置文件/etc/rsync.conf解析: motd file -> motd文件位 ...
- Python之路(第三十八篇) 并发编程:进程同步锁/互斥锁、信号量、事件、队列、生产者消费者模型
一.进程锁(同步锁/互斥锁) 进程之间数据不共享,但是共享同一套文件系统,所以访问同一个文件,或同一个打印终端,是没有问题的, 而共享带来的是竞争,竞争带来的结果就是错乱,如何控制,就是加锁处理. 例 ...
- emmet-前端开发神器的几种写法
*常用:类: . ,id: # div.a+div#a <div class="a"></div> <div id="a"&g ...
- VB编程中的“Abs”是什么意思?
c = Val(Text1.Text) '将Text1中的值赋给cIf c = Abs(a - b) Then 'Abs(a - b)是a和b间的差(正数),判断c是否等于该差值f = f + 10 ...
- pl/sql调试存储过程
1.找到对应的存储过程 2.在存储过程名称上右键,选择Test 3.点击1标识的按钮(begin debugger),选择2开始调试 4.存储过程如需参数,需要在右侧下方的表格区域(3)填入对应的值即 ...
- Xshell连接不上阿里云服务器
心血来潮买了一台1核2g内存,外加40g系统盘的阿里云ecs服务器,在配置xshell连接服务器一直无法连接,试了很多种方法,各种心累,不过最后还是找到了原因,是因为在服务器上没有配置安全组规则,附上 ...
- Maven学习 七 Maven项目创建(2)war项目
一.web项目的目录结构 如果手动创建一个java web项目,其基本的目录结构包括:METE-INF,WEB-INF,以及WEB-INF下必须包含一个web.xml文件 二.使用Maven创建wa ...
- react native 学习笔记
假设你的机器现在还没安装任何环境. 不同的操作系统.不同的目标平台,具体的步骤也会有所不同.如果你想同时开发android和ios也没问题,只需要先选一个平台开始,另一个平台的环境搭建只是稍有不同 本 ...
- C++解题报告 : 迭代加深搜索之 ZOJ 1937 Addition Chains
此题不难,主要思路便是IDDFS(迭代加深搜索),关键在于优化. 一个IDDFS的简单介绍,没有了解的同学可以看看: https://www.cnblogs.com/MisakaMKT/article ...