java面向对象的一些知识

(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”的语句。

posted @ 2015-12-12 22:27  冷月枫寂  阅读(250)  评论(0编辑  收藏  举报