java抽象,接口,容易混淆的几个类对应方法
一,抽象
注意:
1.抽象类不能直接new对象,只能创建非抽象子类的对象
2.抽象类中不一定非得有抽象方法,但是抽象方法所在的类一定抽象类
3.抽象类的子类,必须重写父类中的所有抽象方法,否则,编译报错,除非该子类也是抽象类
4.抽象类中可以有成员变量,构造,成员方法
5.抽象类中可以有构造方法,是供子类创建对象时,初始化父类属性使用的
- public abstract class Employee {
- private String name;
- private int age;
- public Employee() {
- }
- public Employee(String name, int age) {
- this.name = name;
- this.age = age;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- public abstract void work();
- }
复制代码- public class Teacher extends Employee{
- public Teacher() {
- }
- public Teacher(String name, int age) {
- super(name, age);
- }
- @Override
- public void work() {
- System.out.println("在讲java");
- }
- }
复制代码- public class Test01 {
- public static void main(String[] args) {
- Teacher t1 = new Teacher("涛哥", 18);
- System.out.println(t1.getName()+"..."+t1.getAge());
- }
- }
复制代码 二,接口
1.定义接口:
public interface 接口名{}
2.实现:
public class 实现类类名 implements 接口名{}
3.使用:
a.实现类实现接口
b.重写接口中的抽象方法
c.创建实现类对象(接口不能直接new对象)
d.调用重写的方法
- public interface USB {
- public abstract void open();
- public abstract void close();
- }
复制代码- public class Mouse implements USB{
- @Override
- public void open() {
- System.out.println("鼠标打开");
- }
- @Override
- public void close() {
- System.out.println("鼠标关闭");
- }
- }
复制代码- public class Test01 {
- public static void main(String[] args) {
- Mouse mouse = new Mouse();
- mouse.open();
- mouse.close();
- }
- }
复制代码 2.1抽象方法
1.定义格式:
public abstract 返回值类型 方法名(形参);
2.注意:
不写public abstract 默认也有
3.使用:
a.定义实现类,实现接口
b.重写抽象方法
c.创建实现类对象,调用重写的方法
2.1默认方法
1.格式:
public default 返回值类型 方法名(形参){
方法体
return 结果
}
2.使用:
a.定义实现类,实现接口
b.默认方法可重写,可不重写
c.创建实现类对象,调用默认方法
2.3静态方法
1.定义格式:
public static 返回值类型 方法名(形参){
方法体
return 结果
}
2.使用:
接口名直接调用
接口特点:
1.接口可以多继承 -> 一个接口可以继承多个接口
public interface InterfaceA extends InterfaceB,InterfaceC{}
2.接口可以多实现 -> 一个实现类可以实现一个或者多个接口
public class InterfaceImpl implements InterfaceA,InterfaceB{}
3.一个子类可以继承一个父类的同时实现一个或者多个接口
public class Zi extends Fu implements InterfaceA,InterfaceB{}
4.注意:
继承也好,实现接口也罢,只要是父类中或者接口的抽象方法,子类或者实现类都要重写
|
|