`
wangzhuosoft
  • 浏览: 22896 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

java基础--类的继承和权限的控制,访问控制,方法的重写,super关键字,继承中的构造方法,object类,toString方法

阅读更多

类的继承与权限控制

Java中使用extends关键字实现类的继承机制

通过继承,子类自动拥有了基类(superclass)的所以成员(成员变量和方法)

Java只支持单继承,不允许多继承:

一个子类只能有一个基类

一个基类可以派生出来多个子类

 

访问控制:

Java权限修饰符public protected private置于累的成员定义前,用来限制其他对象对该对象成员的访问权限。

修饰符

类内部

同一个包

子类

任何地方

private

Yes

 

 

 

default

Yes

Yes

 

 

protected

Yes

Yes

Yes

 

public

Yes

Yes

Yes

Yes

对于class的权限修饰只可以用public default

   public类可以在任何地方被访问

   default类只可以被同一个包内部的类访问

 

方法的重写

1.         在子类中可以根据需要对基类中继承来的方法进行重写。

2.         重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型。

3.         重写方法不能使用比被重写方法更严格的访问权限。

 

Super关键字

Java类中使用super来引用基类的成分;

Super指向当前类的父类对象

 

继承中的构造方法:

1.         子类的构造的过程中必须调用其基类的构造方法

2.         子类可以在自己的构造方法中

a)         使用super(argument_list)调用基类的构造方法。

b)         使用this(argument_list)调用本类的另外的构造方法

c)         如果调用super,必须写入子类构造方法的第一行

3.         如果子类的构造方法中没有显示地调用基类的构造方法,则系统默认调用基类无参数的构造方法

4.         如果子类构造方法中即没有显示调用基类构造方法,而基类中没有无参的构造方法,则编译出错。

 

Object

Object类是所有Java类的根基类

如果在类的声明中未使用extends关键字指明其基类,则默认基类为object

public class Person{

       

}

等价于

  public class Person extends Object{

}

 

protected  Object

clone()
          
创建并返回此对象的一个副本。

 boolean

equals(Object obj)
          
指示其他某个对象是否与此对象相等

protected  void

finalize()
          
当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。

 Class<?>

getClass()
          
返回此 Object 的运行时类。

 int

hashCode()
          
返回该对象的哈希码值。

 void

notify()
          
唤醒在此对象监视器上等待的单个线程。

 void

notifyAll()
          
唤醒在此对象监视器上等待的所有线程。

 String

toString()
          
返回该对象的字符串表示。

 void

wait()
          
在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当前线程等待。

 void

wait(long timeout)
          
在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量前,导致当前线程等待。

 void

wait(long timeout, int nanos)
          
在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量前,导致当前线程等待。

toString方法

Object类中定义了public String toString() 方法,其返回值是String类型,描述当前对象的有关信息

 

在进行String与其它类型数据的连接操作时(如:System.out.println(“info”+Person),将自动调用该对象类的toString()方法

 

可以根据需要在用户自定义类型中重写toString()方法。

分享到:
评论

相关推荐

    编程技能训练与等级考试辅导:继承、super关键字.pptx

    使用super调用父类构造方法和方法 在子类中覆盖父类的方法 描述类型转换和显式向下转换的必要性 使用protected限制对数据和方法的访问 使用final修饰常量、不可覆盖的方法和不可继承的类 理解多态性、动态绑定 理解...

    JAVA基础课程讲义

    Java中IO流类的体系 149 四个IO基本抽象类 150 InputStream 150 OutputStream 150 常用InputStream和OutputStream子类用法 150 FileInputStream和FileOutputStream 150 ByteArrayInutStream和ByteArrayOutputStream ...

    Test2_Interface.java

    调用了实现类自己的无参构造,而且无参构造里第一行隐藏着super(),这时想去当前的父类也就是接口里找无参构造,但是接口里根本就没有构造方法,那这时找谁去要的无参构造呢?--其实会去找Object要无参构造。

    一篇文章快速了解Java中的继承与多态

    介绍2.super关键字2.1 调用父类的构造方法2.2 构造方法链2.3 调用父类的方法3.方法重写4.Object类及其常用方法4.1 toString()方法4.2 equals()方法5. 防止拓展与重写 —final关键字二. 多态6.1 介绍6.2 动态绑定...

    AIC的Java课程1-6章

    第3版 机械工业出版社  教学内容和要求 知识点 重要程度 使用频度 难度 Java 入门 高 中 易 变量和运算符 高 高 中 控制结构 高 高 易 数组 高 高 中 方法 很高 高 中 封装 很高 很高 难...

    Java 语言基础 —— 非常符合中国人习惯的Java基础教程手册

    子类从它先辈类那里继承了代码和数据,这样,它就可以执行先辈类的功能和访问先辈 类的数据。一个纯面向对象程序设计的语言将具有严格的继承性。 通过对象、类,我们实现了封装,通过子类我们可以实现继承。例如,...

    java基础案例与开发详解案例源码全

    5.6.2 构造方法135 5.6.4 方法重载138 5.6.5 自定义方法138 5.6.6 系统提供方法139 5.6.7 方法调用140 5.6.8 方法参数及其传递问题144 5.6.9 理解main方法语法及命令行参数147 5.6.1 0递归算法147 5.7 this关键字148...

    java培训机构内部预习文档

    面向对象三大特性 封装、继承、多态、对象创建过程、访问修饰符、super关键字、方法重写、instanceof chp8.三个修饰符 static、final、abstract chp9.接口 基本语法、接口的作用、解耦合 chp10.常用类 内部类、...

    JAVA面向对象详细资料

    20.8 在子类构造方法中如何调用父类构造方法? 23 20.9 super关键字 24 20.10 父类中私有属性和私有方法可以继承吗? 24 20.11 在代码开发时先开发父类还是先开发子类? 24 20.12 父类是怎么来的? 25 20.13 父类中...

    java经典面试2010集锦100题(不看你后悔)

    下面哪个关键字,使类不能在被其他的类继承?c(选择1项) A) static B) finally C) final D) instance 题目14:a 程序如下: String s1=new String("Hello"); String s2=new String("there"); String s3=new ...

    疯狂JAVA讲义

    学生提问:既然内部类是外部类的成员,是否可以为外部类定义子类,在子类中再定义一个内部类来重写其父类中的内部类? 211 6.7.4 局部内部类 211 6.7.5 匿名内部类 212 6.7.6 闭包(Closure)和回调 215 6.8 ...

    java 面试题 总结

    如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。如果在一个类中定义了多个同名的...

    零基础Java入门编程【day7】

    文章目录继承与多态继承单继承方法的重写super关键字调用父类的构造器super和this的区别简单类对象的实例化过程子类对象的实例化过程面向对象特征——多态虚拟方法调用(Virtual Method Invocation)小结[instanceof ...

    java内部学习笔记.docx

    Java技术基础 4 1.1编程语言 4 1.2 Java的特点 4 1.3 Java开发环境 4 1.4 Java开发环境配置 5 1.5 Linux命令与相关知识 5 1.6 Eclipse/Myeclipse程序结构 6 Java语言基础 7 2.1基础语言要素 7 2.2八种基本数据类型 7...

    超级有影响力霸气的Java面试题大全文档

    如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。如果在一个类中定义了多个同名的...

    JAVA面向对象知识点详细文档

    面向对象知识点详细文档 知识点如下: ...构造方法 private-私有化 封装 this-本对象 分包 static-静态的 继承 super-父类 重写 访问修饰符 Object final 抽象类及抽象方法 接口 多态 对象转型 内部类

    Java面试宝典2020修订版V1.0.1.doc

    25、JAVA中Object类中有哪些常用方法? 19 26、heap和stack有什么区别。 19 27、GC是什么? 为什么要有GC? 20 28、什么是内部类?分为哪几种? 20 29、为什么需要内部类? 20 30、内部类可以引用它的包含类的成员吗?...

Global site tag (gtag.js) - Google Analytics