Java学习笔记---继承和多态

原创 2015年11月18日 20:39:30

继承

public class Circle extends GeometricObject{} //Circle-子类 GeometricObject-父类
super() //调用父类的无参构造方法,必须在之类的构造方法的第一句中使用
super(parameters); //调用父类的有参构造方法
super.方法名(参数);//引用父类的方法

覆盖

子类取与父类相同的方法名,并对方法进行修改,这种叫做方法覆盖。为了覆盖一个方法,这个方法必须使用与父类相同的签名以及相同的返回值类型在子类中进行定义。

public class Circle extends GeometricObject{
    public Circle(){
        System.out.println("成功调用了Circle的构造方法");
    }

    public void printA(){
        super.printA();
        System.out.println("成功调用覆盖后的方法A\n");
        //super.printB(); 无法访问父类的私有方法
    }

        static void printC(){
        System.out.println("成功调用子类中重写的方法C");
    }
    public static void main(String[] args){
        Circle myCircle = new Circle();
        myCircle.printA();
        //Circle.printB(); 无法在类外调用私有方法
        myCircle.printC();
        GeometricObject.printC();
    }
}

class GeometricObject{
    GeometricObject(){
        System.out.println("成功调用了GeometricObject的构造方法");
    }

    void printA(){
        System.out.println("\n成功调用方法A");
    }

    private void printB(){
        System.out.println("成功调用方法B");
    }

    static void printC(){
        System.out.println("成功访问静态方法C");
    }

}

输出结果
成功调用了GeometricObject的构造方法
成功调用了Circle的构造方法

成功调用方法A
成功调用覆盖后的方法A

成功调用子类中重写的方法C
成功访问静态方法C

注意:

1、私有方法、数据域能被子类继承,但无法调用,跟没被继承一样。

2、仅当实例方法是可访问的,它才能被覆盖。如果子类定义的方法在父类中是私有的,那么这两个方法完全没有关系。

3、与实例方法一样,静态方法也能被继承。但是,静态方法不能被覆盖。如果父类中的静态方法被子类重新定义,那么父类中的静态方法将被隐藏。可以使用语法:父类名.静态方法名 调用隐藏的静态方法。

对象类object和它的toString()方法

java中的每一个类都源于java.lang.Object类,如果定义类时没有指定的继承类,那么这个类就默认集成了 Object 类

例如

public class ClassName{
...
}

等价于

public class ClassName extends Object{
...
}

Object类中有一个方法toString().

toString()方法的签名是:

public String toString()

该方法返回的信息通常不是很有用,所以常常会去覆盖它。使它可以返回一个代表该对象的描述性字符串。

版权声明:本文为博主原创文章,未经博主允许不得转载。

java语言程序设计基础篇第十三章编程练习题

1 2 3 4 /* 我在 java核心技术 里面看到了一个示例代码挺符合这个题目,不过我想吐槽那里面写的好麻烦,满满的全是方法的调用,感觉还不如用c写出来简洁呢 */ 5GeometricObjec...

java 入门学习笔记(封装,继承,多态)

回顾java基础

java学习笔记------继承和多态 覆盖

1.如何定义扩展类??? extend  :延伸,扩大,推广。 定义扩展类: 子类+ extend+基类 关键字extend是告诉编译器对子类作继承处理。// 即:拥有了基类的方法和属性。 要...
  • H002399
  • H002399
  • 2015年07月04日 22:30
  • 234

黑马程序员java学习笔记——面向对象的特征封装、继承和多态

感觉面向对象是在java中比较难的内容,但也是核心内容,毕竟写代码思想是很重要的,面向对象就是一种思想,精通这种思想,编程就会变的简单。下面就是我学完面向对象这一部分做的笔记。     面向对象   ...

java核心技术学习笔记7---继承与多态

多态是OOP继抽象、封装、继承后的又一基本特性。我们把在Java中的多态性概括到方法多态上。而这种方法的多态性又分为编译时多态(编译期绑定、前期绑定、静态绑定)和运行时多态(运行时绑定、后期绑定、动态...
  • busy50
  • busy50
  • 2012年11月28日 19:52
  • 330

java学习笔记5.23对象和面向对象的思考,继承和多态

对象 面向对象的思考 类的关系 基本数值类型当做对象 对象 this的用法: this指向调用调用对象本身的引用名,谁调用指向谁。 当使用静态的变量时需要用类名来调用函数中的...

java学习笔记6——封装、继承和多态

java是一种面出现对象的编程语言,他的三个最重要的特性就是封装,继承和多态。这里大致介绍一下,有个了解,想要详细学习的可以去查看一下《think in java》这本书,或者上网学习。...

JAVA学习笔记之-封装,继承,多态 总结

1、封装 封装:把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。是软件设计模块化、软件复用和软件维护的一个基础。 属性的封装:java中类的...

黑马程序员-自己总结的java学习笔记(5)继承,接口,多态。

黑马学习博客五号:接口继承与多态 1:类的继承 继承就是基于某个父类的扩展,制定出一个新的子类。子类可以继承父类原有的属性和方法,也可以增加原来父类所不具备的属性和方法,或者直接重写父类中...

Java学习笔记--继承与多态

何谓继承 继承的基本概念就不在赘述。 多态与is-a 在Java中,子类只能继承一个父类,子类与父类之间会有is-a的关系,我们称之为“是一种”的关系。我们要理解多态,必须知道我们操作的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java学习笔记---继承和多态
举报原因:
原因补充:

(最多只允许输入30个字)