(1)this和super关键字的用法
this表示调用本类实例方法和成员变量,this引用就是对一个对象的引用,如this.name 表示本类成员变量name,静态方法中不能使用this关键字。
super关键字的用法:调用父类的构造方法,如super([参数列表]);操作被隐藏的成员变量和被重写的方法。
(2)几种常见的访问修饰符:
private表示私有的,便是在本类是可见的。在其它类中是不可见或者只有通过本类提供的方法来访问它。
protect表示受保护的,表示在本包中是可见的。
public表示公开的,没有什么权限。
属性一般设置为private,表示成员属性,方法一般设为public 也有private,一般private方法是供类内部使用(帮助方法)。
(3)重写(override)和重载(overload):
重写表示在继承过程中对父类的方法进行在重写,其方法名和参数返回值类型是不变的。重载表示同一类的中方法名、返回值类型相同,但是参数类型,参数个数,参数位置的不一样。
(4)面向对象封装的特点:
封装就是将数据和方法包装进类中,加上具体实现的掩藏。其结果就是同时带有特征和行为的数据类型。
(5)里氏替换Lsp,上转型,下转型,如
public void feedDog(Pet p, Food f) { System.out.println("主人给" + p.getName() + "喂食" + f.getName()); if (p instanceof Dog) { // Pet d=(Dog)p; // Food b=(Bone)f; // d.eatFood(b); p.eatFood(f); } else { System.out.println("请给狗狗喂食!"); }
(5)多态:
广义的多态包括重载(overload)和重写(override),狭义的多态仅指重写。
重写:对多个对象下达同一命令时,根据重写的方法的不同,而有不同的执行结果。
重写多态的三种实现方式:1,直接重写,子类直接重写父类同名同参的方法,父类new一个子类对象,通过父类方法,调用子类重写的方法。
2,抽象类抽象方法的重写(抽象类的一些要点:抽象类不能够实例化,也就是说不能在堆空间给其分配空间;抽象方法只能在抽象类中;实现抽象类的继承,必须重写基类的 抽象方法;抽象方法只声明不实现。通过抽象基类new子类,调用父类.抽象方法()实现多态)
3,接口的重写。接口的概念:a,接口是一套规范,接口中只声明方法 b,实现接口就具有了接口的功能,拓展子类的功能 c,接口可以实现多个,弥补了java单继承的缺 点。
java常见的接口:Collection,List,Iterable,Set,connection,Statement,PerParedStatement,Comparable,Comparator,Runable
其中对象数组在使用Arrays.sort()方法的时候,如果在一段程序代码中只需实现一种排序方式,则需要对象类实现Comparable接口。如果需要同一段程序中实现多种排序, 则需要写其他排序规则的类来实现Comparator接口。
(6)接口和抽象类的异同点。相同点都是多态的实现方式,都实现了重写。不同点是:抽象类属于继承,抽象类的继承类似与“is a”的语句,而继承接口类似与“like a”的语句。