java继承,final,super,Object类,toString,equals,
Java中的内部类:
成员内部类
静态内部类
方法内部类
匿名内部类
内部类的主要作用如下:
1. 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类
2. 内部类的方法可以直接访问外部类的所有数据,包括私有的数据
3. 内部类所实现的功能使用外部类同样可以实现,只是有时使用内部类更方便
-----------------------------
Jav中的继承是单继承
子类拥有父类的所有属性和方法(private修饰的无效)
实现代码复用
语法规则:
class 子类 extends 父类{
}
方法的重写:
如果子类对继承父类的方法不满意,是可以重写父类继承的方法的,当调用方法时会优先调用子类的方法。
语法规则:
a、返回值类型
b、方法名
c、参数
都要与父类继承的方法一致,才叫方法的重新。
//父类
public class Animal{
public int age;
public void eat()
{
System.out.println("Animal eat");
}
}
//子类,可以访问父类的属性age,并且重写了父类的方法eat
public class Dog extends Animal{
public void eat()
{
System.out.println("Dog eat");
}
}
-----------------------------------------
final关键字
可以修饰类,方法,属性和变量
final修饰类,则该类不允许被继承
final修饰方法,则该方法不允许被覆盖(重写)
final修饰属性,
则属性不会进行隐形的初始化(类的初始化属性必须有值)
或在构造方法中赋值(但只能选其一)
final修饰变量,则该变量的值只能赋值一次,即为常量
------------------------------------------------
super关键字
在对象的内部使用,可以代表父类对象。
1、访问父类的属性
super.age;
2、访问父类的方法
super.eat();
super的应用
子类的构造过程当中必须调用其父类的构造方法。
如果子类的构造方法中没有显示调用父类的构造方法,则系统会默认调用父类无参的构造方法。
如果显示的调用构造方法,必须在子类的构造方法的第一行。
public Dog()
{
super();
System.out.println("test");
}
如果子类构造方法中既没有显示调用父类的构造方法,而父类又没有无参的构造方法,则编译出错。
如果自己定义了一个有参的构造方法,系统就不会再提供默认的无参的构造方法。
--------------------------------------------------------------
Object类
是所有类的父类,如果一个类没有使用extends明确标识继承另外一个类,那么这个类默认继承Object类。
Object类中的方法,适用所有子类。
1、toString()方法
在Object类里面toString方法返回的是对象的哈希code码(对象地址字符串)
可以通过重写toString()方法表示出对象的属性。
eclipse工具提供了方法实现子类重写toString,
菜单source -----> Generate toString 选择属性值。
2、equals()方法 (== 操作符)
Object类中的方法,比较的是对象的引用是否指向同一块内存地址。
一般情况下比较两个对象时比较他的值是否一致,所以要进行重写。
eclipse菜单source -----> Generate hashCode() and equals() 选择属性值。
java继承,final,super,Object类,toString,equals,的更多相关文章
- Object类----toString,equals,hashcode
一.toString 的应用方法与覆写 public class testoveridetoString { public static void main(String[] args) { /*ob ...
- JAVA之旅(九)——Object类,equals,toString,getClass,内部类访问规则,静态内部类,内部类原则,匿名内部类
JAVA之旅(九)--Object类,equals,toString,getClass,内部类访问规则,静态内部类,内部类原则,匿名内部类 天天被一些琐事骚扰,学习还得继续 一.Object类 Obj ...
- 1.9(java学习笔记)object类及toString()与equals()方法
object类 java中objec是所有类公共的父类,一个类只要没有明显的继承某一类,那么它就是继承object类. 例如 class Person {......};和class Person e ...
- java.lang.Object类与equals()及toString()的使用
1.Object类是所有Java类的根父类 2.如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类 3.Object类中的功能(属性.方法)就具有通用 ...
- Java Object类的equals()方法
所有类都从Object类中继承了equals方法,Object类中equals方法源代码如下: public boolean equals(Object obj) { retu ...
- Java Object类及其equals方法
基本概念: Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入: Object类是所有Java类的祖先.每个类都使用 Object 作为超 ...
- Java提高学习之Object类详解(1)
转自:http://www.importnew.com/10304.html 问:什么是Object类? 答:Object类存储在java.lang包中,是所有java类(Object类除外)的终极父 ...
- 【JAVA基础】10 Object类
1. Object类概述 是类层次结构的根类 每个类都使用 Object 作为超类 所有类都直接或者间接的继承自该类 所有对象(包括数组)都实现这个类的方法. 2. Object的构造方法 publi ...
- 关于Object类的equals方法和hashCode方法
关于Object类的equals的特点,对于非空引用: 1.自反性:x.equals(x) return true : 2.对称性:x.equals(y)为true,那么y.equals(x)也为tr ...
- 代码块和Java的API及Object类
代码块 局部代码块 特点: 以”{}”划定的代码区域,此时只需要关注作用域的不同即可 方法和类都是以代码块的方式划定边界的 构造代码块 优先于构造方法执行,构造代码块用于执行所有对象均需要的初始化动作 ...
随机推荐
- Oracle 11G Client客户端安装
参考资料: http://www.cnblogs.com/jiguixin/archive/2011/09/09/2172672.html http://blog.csdn.net/lanchengx ...
- python+unittet在linux与windows使用的区别
使用python的unittest编写单元测试框架,批量运行测试用例时,如果使用discover时,windows环境下和linux环境下的代码不一样 Windows环境的run.py代码: case ...
- [osg][原]osg的坐标系:使用右手法则Y轴向前、X向、右Z向上。camare的默认姿态:向下看(Z轴负向),头向前(Y轴正向)
参考:http://blog.csdn.net/tmljs1988/article/details/7561887 图中上半边为opengl坐标系,下半边的osg坐标系: osg::Camare的默认 ...
- python使用sessions模拟登录淘宝
之前想爬取一些淘宝的数据,后来发现需要登录,找了很多的资料,有个使用request的sessions加上cookie来登录的,cookie的获取在登录后使用开发者工具可以找到.不过这个登录后获得的网页 ...
- leecode第四十三题(字符串相乘)
class Solution { public: string multiply(string num1, string num2) { ";//特殊情况 ] == ] == ') retu ...
- Codeforces 1079 E - The Unbearable Lightness of Weights
E - The Unbearable Lightness of Weights 思路: 分组背包dp 每组最多只能选一个 一些优化可以快很多 代码: #pragma GCC optimize(2) # ...
- 牛客OI周赛4-提高组 B 最后的晚餐(dinner)
最后的晚餐(dinner) 思路: 容斥 求 ∑(-1)^i * C(n, i) * 2^i * (2n-i-1)! 这道题卡常数 #pragma GCC optimize(2) #pragma GC ...
- JAVA基础知识总结:二十
一.网络编程基础 1.概念 所谓计算机网络,就是把分布在不同区域的计算机与专门的外部设备使用通信线路连接成一个规模大,功能比较强的网络系统,从而使得计算机之间可以相互通信,共享资源 所谓的网络编程,在 ...
- Webpack 常见静态资源处理 - 模块加载器(Loaders)+ExtractTextPlugin插件
Webpack 常见静态资源处理 - 模块加载器(Loaders)+ExtractTextPlugin插件 webpack系列目录 webpack 系列 一:模块系统的演进 webpack 系列 二: ...
- c++-pimer-plus-6th-chapter06
Chapter Review 1 Both version give the same answers, but the if else version is more efficient. Cons ...