一面向对象深化
抽象类和抽象方法
抽象类
什么是抽象类:使用abstract修饰的类为抽象类
1 public abstract class Person{ 2 }
抽象类的特征
1.不可以创建对象
2.可以有构造方法
抽象类中构造方法的作用,是提供给子类调用
抽象类中可以包含哪些成员
成员变量,成员方法,静态方法,构造方法,final修饰的方法
1 package com.zqf.abstractpro; 2 3 public abstract class Person { 4 //(1)成员变量/实例变量/属性 5 private String name; //姓名 6 //(2)成员方法/实例方法 7 public void info(){ 8 System.out.println("大家好,我叫"+name); 9 } 10 //静态方法 11 public static void show(){ 12 } 13 //构造方法 14 public Person(){ 15 System.out.println("Person类中的无参构造方法"); 16 } 17 //final修饰的方法,只能被子类调用,不允许被子类重写 18 public final void fun(){ 19 20 } 21 }
抽象方法
什么是抽象方法:使用abstract修饰的方法称为抽象方法
抽象方法的特征:1.抽象方法不允许有方法体,只能以分号“;”结尾;
2.抽象方法只能声明在抽象类中(含有抽象方法的类必须是抽象类)
3.抽象方法必须被子类实现
接口详解
初识接口:如果一个类中,所有的方法为abstract方法,那么这个类就可以声明为接口
接口的定义:使用interface修饰,是一种数据类型,引用数据类型
接口的定义:
1 public abstract class Myclass{ 2 public abstract void show(); 3 public abstract String fun(); 4 public abstract int[] method(); 5 }
利用接口可以改为:
1 public interface MyInterface{ 2 void show(); 3 String fun(); 4 int[] method(); 5 //public MyInterface(){} //注意,此方法为错的,接口中不准定义构造方法 6 }
注意:接口中,不能定义方法
接口的定义:使用interface修饰,是一种数据类型,引用数据类型
接口的定义:
1 public interfacce MyInterface{ 2 void show(); 3 }
接口中可以包含什么:1,抽象方法(public abstract ),2.非抽象方法,3属性,接口中的属性必须是公众的,即(public static fianl)常量,4.接口中不能包含构造方法,
接口与类的方法:1.类去实现接口中的抽象方法,类与接口中的关系——实现关系,implements ,(实现接口的所有抽象方法)
2.一个类存在继承关系,有存在实现关系,extends , implements (继承 __父子关系,—亲爹)
实现__实现关系 —干爹
3.如果父类与接口中有完全相同的方法(一模一样),子类实现的方法是父类的还是接口的?
父类优先于接口,子类实现的是 父类中的方法
4.如果父类中与接口中有同名方法,对子类/实现类有什么要求
接口的特征和使用意义
1 public interface InterfaceA{ 2 public void show(); 3 } 4 interface InterfaceB extends InterfaceA{ 5 } 6 interface InterfaceC extends InterfaceB{ 7 } 8 }