Java——基础知识——类的继承父类的重写Object类final关键字
Posted UDK_KL.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java——基础知识——类的继承父类的重写Object类final关键字相关的知识,希望对你有一定的参考价值。
如有不妥之处欢迎指正
类的继承
概念
- 类的继承是指在现有类的基础上构建一个新类
- 继承主要描述类与类之间的关系,利用继承可以在不改变原有类的功能的前提下,对该类进行扩展,被继承的类称为父类,继承的类称为子类,父类和子类是一个相对的概念
- 子类在继承父类时便拥有了父类中所有的成员变量和方法
实现
[修饰符] class 子类名 extends 父类名
{
//子类代码
}
-----------------------------------------------
class A{}
class B extends A {}
class C extends B {} //C拥有A和B的所有内容
-----------------------------------------------
class A
{
public void f()
{
System.out.print("A\\n");
}
}
class B extends A
{
}
public class Main
{
public static void main(String [] args)
{
B b = new B(); //此处仅实例化对象B,注意B中并未声明任何方法
b.f();
}
}
输出
A
注意:
- Java中一个类只能继承于一个父类,不允许同时继承多个类
- 同一个父类可以被多个子类继承
- 可以
千层饼多层继承
重写父类方法
重父类中方法的方法或成员变量
条件
重写方法/成员变量需要和父类被重写的方法名称/成员变量名称、参数列表和返回值类型均相同
实现
class A
{
int c=1;
public void a()
{
System.out.printf("%d\\n",c);
}
}
class B extends A
{
int c=2;
public void a()
{
System.out.printf("%d\\n",c);
}
}
public class Main
{
public static void main(String [] args)
{
A test1 = new A();
B test2 = new B();
A test3 = new A();
test1.a();
test2.a();
test3.a();
}
}
输出
1
2
1
- 从输出中可见虽然子类对父类的方法进行了重写,但是并不会改变原有父类中的方法
super关键字
在子类重写父类的方法后,子类就不能直接访问父类中原有的方法了,因此使用super关键字用来在子类中调用重写父类方法前父类的方法,构造方法也是同理
super.成员变量
super.成员方法()
super([参数列表]) //调用构造方法
注意:
- 通过super调用父类的构造方法的代码必须位于子类构造方法的第一行,并且只能出现一次
Object类
Object类时所有类的父类,所有类如果没有说明(extends)继承于某个类,默认继承Object类,如果说名明了,那Object类也是父类的父类
Object类中的常用方法
方法声明 | 功能描述 |
---|---|
bolean equals(Object obj) | 判断某个对象与此对象是否相等 |
final Class<?>getClass() | 返回此 Object 的运行时类 |
int hashCode() | 将对象的内存地址进行哈希运算并返回一个int类型的哈希码 |
String toString() | 以字符串的形式返回对象的基本信息 |
void finalize() | 清理没有被任何引用变量所引用的对象的资源(内存回收) |
final关键字
作用
被final修饰的类、变量或方法具有以下特征
- 被修饰的类不能被继承
- 被修饰的方法不能被子类重写
- 被修饰的变量只能被赋值一次(变为常量),且在定义时必须初始化
final class A
{
final public int c = 0; //final和访问限制符都是修饰符
public final int c = 0;
public final void a()
{
}
}
以上是关于Java——基础知识——类的继承父类的重写Object类final关键字的主要内容,如果未能解决你的问题,请参考以下文章