Java第七章

1.类的继承

java语言每个类只能继承一个父类。

extends——继承

父类 和普通类写法相同

public class 父类类名{

}

子类 需要继承父类

public class 子类类名 extends 父类类名{

}

所有类的构造方法第一行都有一个隐藏的“super();”

作用是在执行该构造方法之前调用其父类的构造方法
Java第七章_第1张图片

Java第七章_第2张图片

 Java第七章_第3张图片

 2.odject类

Object类是比较特殊的类,它是所有类的父类,是Java类层中最高层类。

方法的重写:返回参数相同,方法名相同,传入参数相同,方法体不同

getclass()方法

是Object类定义的方法,它会返回对象执行时的Class实例,然后使用此实例调用getName()方法可以取得类的名称。

语法:getClass().getname();

可以将getClass()方法与toString()方法联用

tostring()方法

它的功能是将一个对象返回为字符串形式,它会返回一个String实例。

在实际的应用中通常重写toString()方法,为对象提供一个特定的输出模式。当这个类转换为字符串或与字符串连接时,将自动调用重写的toString()方法

Java第七章_第4张图片

 equals()方法

“==”运算符与equals()方法是两种比较对象的方法。

两者的区别在于:“==”比较的是两个对象引用内存地址是否相同,而equals()方法比较的是两个对象的实际内容

Java第七章_第5张图片

 3.对象类型的转换

向上转型

将子类对象赋值给父类引用。

通过自动类型转换。

例:Animal a = new Dog();

向下转型

将父类对象赋值给父类引用。

需要进行强制类型转换。

例:Dog a = (Dog) new Animal();

4.方法重载

方法名相同,参数不同。

区分:子类重写父类的方法——返回参数相同,方法名相同,传入参数相同,只有方法体不同

Java第七章_第6张图片

 在谈到参数个数可以确定两个方法是否具有重载关系时,会想到定义不定长参数方法。

        不定长参数语法:返回值 方法名(参数数据类型...参数名称)

Java第七章_第7张图片

5.final 关键字

final修饰变量——不可以被修改(常量)

final修饰方法——不可以被重写

final修饰——不可以被继承

Java第七章_第8张图片

 Java第七章_第9张图片

报错:不能覆盖Dad中的final方法

因为打开电视这个方法是由final修饰的,子类无法重写。所以Baby想要打开电视,就只能找爸爸来打开了

6.使用instanceof关键字判断对象类型

 对象名 instanceof 类名

判断该对象是否属于该类或其子类

Java第七章_第10张图片

Java第七章_第11张图片

 报错:条件操作数类型Quadrangle和Circular不兼容

因为四边形类与圆形类没有继承关系,因此两者不能使用instanceof关键字进行比较,否则会发生“不兼容”错误

7.多态

利用多态可以使程序具有良好的扩展性,并可以对所有类对象进行通用的处理

Java第七章_第12张图片

Java第七章_第13张图片

8.抽象类和接口

抽象方法 
修饰符  abstract 返回参数  方法名 (传入参数);

抽象类  有抽象方法的类一定是抽象类
修饰符 abstract class 类名{
}

抽象类被继承后需要实现其中所有的抽象方法,也就是保证以相同的方法名称、参数列表和返回值类型创建出非抽象方法,当然也可以是抽象方法。

继承抽象类的子类必须重写父类所有的抽象方法。否则,该子类也必须声明为抽象类。最终,必须有子类实现该父类的抽象方法,否则,从最初的父类到最终的子类都不能创建对象,失去意义
 

接口

所有方法都是抽象方法。

修饰符 interface 接口名{

}

Java语言每个类可以实现多个接口。

实现:implements

修饰符 class 类名 implements 接口1,接口2,...{

}

对象名 instanceof 接口名

Java第七章_第14张图片

Java第七章_第15张图片 

 

你可能感兴趣的:(java,servlet,开发语言)