目录
1、抽象类
2、抽象方法:
3、 抽象类和抽象方法的使用
1、抽象类
当父类的方法不能确定时,可以用abstract关键字来修饰方法,这个方法时抽象方法,用abstract来修饰该类就是抽象类。
public abstract class Animal {public abstract void shout();}
抽象类的注意事项:使用abstract修饰的类为抽象类
1)抽象类中可以有抽象方法,也可以没有抽象方法。
2)抽象类中可以有普通方法,也可以没有普通方法。
3)抽象类不能实例化(不能通过new来创建对象)。
4)abstract只能修饰类和方法,不能修饰属性和其它方法。
5)抽象方法不能使用private、final和static来修饰,因为这些关键字都和重写相违背的。
2、抽象方法:
使用abstract修饰的方法为抽象方法
1)抽象方法没有方法体
public abstract void test1();
2)抽象方法所在的类要定义为抽象类
3)某个类继承了一个抽象类,那么该类需要重写抽象类中所有的抽象方法,如果不重写,这个类也需要定义为抽象类。
重写抽象类的所有方法:
public class Son1 extends Father{@Overridepublic void test1() {System.out.println("Son1类中重写的test1()方法");}@Overridepublic void test2() {System.out.println("Son1类中重写的test2()方法");}}
3、 抽象类和抽象方法的使用
package cn.bdqn.demo02;
//定义Father的抽象类
public abstract class Father {private String name;private int age;public Father() {super();}public Father(String name, int age) {super();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 test1();//抽象方法public abstract void test2();//抽象方法}
public class Son1 extends Father{
//继承Father抽象类进行重写@Overridepublic void test1() {System.out.println("Son1类中重写的test1()方法");}@Overridepublic void test2() {System.out.println("Son1类中重写的test2()方法");}}
public class Test {public static void main(String[] args) {//抽象类不能实例化,需要进行多态向上转行//创建Father类对象
// Father father1 = new Father();Father father2 = new Son1();//形式上是Father的引用调用Father类中的test1()方法,实际上调用的是Son1类中的test1()方法,因为father2指向的是Son1,所以father1调用的是Son1重写的test1()方法father2.test1();}}