《java开发实战经典》第六章:面向对象(高级篇)

1.在java中表示继承的语法语句:class Student extends Person{}

2.只允许多层继承,不允许多重继承。一个子类只能有一个父类,而一个父类还可以有一个父类。

3.子类也可以称作派生类,

《java开发实战经典》第六章:面向对象(高级篇)_第1张图片

《java开发实战经典》第六章:面向对象(高级篇)_第2张图片

4.子类对象在实例化之前必须首先调用父类中的构造方法后,再调用子类自己的构造方法(注意,只是针对构造方法,普通方法不用)。

《java开发实战经典》第六章:面向对象(高级篇)_第3张图片

5.方法的覆写指子类定义了与父类同名的方法,子类覆写的方法不能拥有比父类更严格的访问权限。当方法被覆写之后,子类对象调用的将是被覆写后的方法。

《java开发实战经典》第六章:面向对象(高级篇)_第4张图片

在子类中直接通过  super.方法()  的形式即可访问父类中的相关方法。

6.


7.《java开发实战经典》第六章:面向对象(高级篇)_第5张图片


8.

《java开发实战经典》第六章:面向对象(高级篇)_第6张图片

9.要求数组实现动态内存分配意即,其中数组的大小是由程序外部决定的,


10.final关键字称为完结器。可以声明类,属性,方法。

《java开发实战经典》第六章:面向对象(高级篇)_第7张图片

使用final声明变量时,要求全部字母大写。

全局常量:


11.抽象类的目的:让人们依据它的格式来修改并创建新的类。

抽象类中不能直接创建对象,只能通过抽象类派生出新类,再创建对象。

抽象类也是单继承,一个子类只能继承一个抽象类


12.抽象类不能被final关键字声明,也不能用private声明。抽象类就是比普通类多定义了一个抽象方法,除了不能直接进行对象的实例化操作之外没有任何不同。


13.接口是一种特殊的类, 由全局常量和公共的抽象方法组成

14.


15.

《java开发实战经典》第六章:面向对象(高级篇)_第8张图片

16.一个接口是不允许继承抽象类的,但允许一个接口继承多个接口

抽象类实现了接口,之后抽象类就可以把接口中的方法拿来当作抽象方法。

《java开发实战经典》第六章:面向对象(高级篇)_第9张图片

17.

18.对象的转型格式:

《java开发实战经典》第六章:面向对象(高级篇)_第10张图片

《java开发实战经典》第六章:面向对象(高级篇)_第11张图片如果想调用子类自己的方法,就一定只能用子类声明对象。

通过向上转型后,子类的代价就是不能访问自己的私有方法(即在父类中没有的方法)

  • 为何不直接Bird b=new Bird();b.eat() 呢? 
    这样就没有体现出面向对象的抽象的编程思想,且降低了代码的可扩展性

    • 子类是父类的超集,子类拥有的信息(例如方法),父类不一定有。用子类类型去操作父类对象是不安全的。

    • 父类是子类的子集,父类拥有的公有信息(例如方法),子类一定有,所以用父类类型去操作子类对象是安全的,也即向上转型是成立的。





19.在进行对象的向下转型前,必须先向上转型,否则出现异常,过程相当于由子类去实例化父类对象


记住用词:通过向上转型实例化父类对象

                 通过父类的构造方法实例化本类对象

20.


即通过向上转型实例化的父类对象,同时是子类和父类的实例。


21.《java开发实战经典》第六章:面向对象(高级篇)_第12张图片

向下转型时,先判断,再操作

《java开发实战经典》第六章:面向对象(高级篇)_第13张图片


22.在java中可以通过对象的多态性为抽象类和接口实例化,这样再使用抽象类和接口的时候可调用本子类中覆写的方法。


23.接口时java解决多继承局限的一种手段,接口就是规定出了一个标准,计算机认的只是接口

《java开发实战经典》第六章:面向对象(高级篇)_第14张图片

24.程序再接口和子类之间加入一个过渡端,通过此端口获得接口的实例化对象(工厂类)


《java开发实战经典》第六章:面向对象(高级篇)_第15张图片

《java开发实战经典》第六章:面向对象(高级篇)_第16张图片


25.代理设计就是由一个代理主题来操作真实的主题。

《java开发实战经典》第六章:面向对象(高级篇)_第17张图片

《java开发实战经典》第六章:面向对象(高级篇)_第18张图片

26. 对于java 来说,如果一个类要实现一个接口,则必须覆写此类中的全部抽象方法,

《java开发实战经典》第六章:面向对象(高级篇)_第19张图片

《java开发实战经典》第六章:面向对象(高级篇)_第20张图片

《java开发实战经典》第六章:面向对象(高级篇)_第21张图片


27.



《java开发实战经典》第六章:面向对象(高级篇)_第22张图片


28.

《java开发实战经典》第六章:面向对象(高级篇)_第23张图片


29.java 中所有的类都有一个公共的父类object类,对于一个良好设计的类来说,最好覆写object类中的equals, toString, hashCode方法


30.

《java开发实战经典》第六章:面向对象(高级篇)_第24张图片



31.接受任意引用类型的对象:


接口实例化不能和向上转型混为一谈

《java开发实战经典》第六章:面向对象(高级篇)_第25张图片

《java开发实战经典》第六章:面向对象(高级篇)_第26张图片


《java开发实战经典》第六章:面向对象(高级篇)_第27张图片


32.

《java开发实战经典》第六章:面向对象(高级篇)_第28张图片



33.《java开发实战经典》第六章:面向对象(高级篇)_第29张图片

《java开发实战经典》第六章:面向对象(高级篇)_第30张图片



34.匿名内部类:

《java开发实战经典》第六章:面向对象(高级篇)_第31张图片


《java开发实战经典》第六章:面向对象(高级篇)_第32张图片




你可能感兴趣的:(Java)