类的继承
* a. 继承*
* b. 重写*
* c. super关键字 (用来访问父类方法)*
① 访问成员变量
② 访问父类构造方法d. final关键字
f. abstract 类
① 定义方法时不写方法体
② 抽象类中有可能包含抽象方法(没有方法体)不可以被调用,所以它不可以被实例化,不管有没有抽象方法。
③如果想调用抽象类中定义的方法,需要创建一个子类,在子类中实现。
abstract class Animal {
//定义抽象方法
abstract void shout();
}
class Dog extends Animal {
void shout();
}
* 2. 接口(摆脱单继承的限制)*
a. 对抽象的进一步抽象
b. 定义接口
① 变量默认使用public static final 表示全局常量
② 方法默认使用public abstract
③不可以通过实例化对象的方式调用接口的方法
④如果接口申明为public 则接口中的方法和变量全部时为public
[public] interface name_jiekou [extends 接口0 , 接口1 ...]
{
[public] [static] [final] data_type 常量名 = 常量值
[public] [abstract] 返回值 抽象方法名(形参列表)
}
3. 接口的实现及其继承
//定义animal接口
interface Animal{
//定义全局变量,默认修饰为public static final
String Animal_Behavior = "动物的行为:" ;
//定义抽象的方法breathe
void breathe();
//定义抽象的方法run
void run();
}
// 继承Animal接口
interface LandAnimal extends Animal{
//定义抽象方法
void liveOnLand ();
}
/*用Dog类来实现LandAnimal,这个LandAnimal继承了接口Animal
* 用来实现的类中应该包含三个方法(Animal的两个 + LandAnimal的一个)
*
*/
class Dog implements LandAnimal {
//定义breathe方法
public void breathe()
{
System.out.println(Animal_Behavior + "用肺呼吸");
}
//定义run方法
public void run ()
{
System.out.println("四条腿跑路");
}
//定义liveOnLand方法
public void liveOnLand()
{
System.out.println("生活在陆地上");
}
}
//定义测试类
public class AnimalTestInterface{
public static void main(String[] args)
{
Dog dog = new Dog(); //创建Dog实例对象
dog.breathe(); //调用接口中的breathe方法
dog.run(); //
dog.liveOnLand(); //
}
}
综上接口特点如下
1 接口中的属性是常量
2. 当一个类实现接口时,类如果是抽象类只需要实现接口中的部分方法即可否则需要实现所有的
3. 用implements关键字可以同时实现多个接口(格式如下)
interface Run{
//代码块
}
interface Fly{
//代码块
}
class Bird implements Run, Fly{
}
4. 同时继承多个接口
interface Flying {
}
interface Runing {
}
interface Eating extends Flying, Runing{
}
5.一个类在继承另一个类的时候还可以实现接口(格式如下)
class Dog extends Canine implements Animal{
//先继承再实现
}