目录
1、抽象类的概述:没有方法体的是抽象方法,有抽象方法的类就是抽象类
2、抽象类的特点:关键字abstract修饰,且不能被实例化
2、接口特点:关键字interface修饰,用implements来实现接口功能,且不能实例化
一、多态
1、多态概述:指同一对象,在不同时刻表现的多种状态;
Animal dog = new Dog();
2、多态的访问特点:
- 成员变量:编译看左边,执行看左边;
- 成员方法:编译看左边,执行看右边;
3、多态的好处和 弊端
- 多态好处:提高了程序的扩展性;
- 多态弊端:不能使用子类的特有功能;
4、多态中的转型
- 向上和向下转型:
public class AnimalTest { public static void main(String[] args) { //多态,向下转型 Animal dog = new Dog(); dog.play(); //多态,向上转型,类型转换异常 Cat cat=(Cat) dog; cat.play();}
}
二、抽象类
1、抽象类的概述:没有方法体的是抽象方法,有抽象方法的类就是抽象类
2、抽象类的特点:关键字abstract修饰,且不能被实例化
Animal抽象类:
package com.gkl.service;
public abstract class Animal {
private String kind;
public abstract void play();
public String getKind() {
return kind;
}
public void setKind(String kind) {
this.kind = kind;
}
public Animal() {
}
public Animal(String kind) {
this.kind = kind;
}
}
三、接口的实现
1、接口概述:对行为的抽象
2、接口特点:关键字interface修饰,用implements来实现接口功能,且不能实例化
MyInterface接口:
package com.gkl.service;
public interface MyInterface {
public boolean login(String username, String password);
}
MyInterface接口的实现:
package com.gkl.service.impl;
public class MyInterface implements com.gkl.service.MyInterface {
@Override
public boolean login(String username, String password) {
if (username.equals("gkl") && password.equals("gkl123")) {
return true;
}
return false;
}
}
3、接口可以多继承,可以实现多个接口的功能
四、内部类
1、内部类概述:就是在一个类中定义的一个类
2、成员内部类和局部内部类
实例化对象格式:Outer.Inner oi = new Outer().new Inner();