abstract class Person { //抽象方法 public abstract void eat(); //abstract void eat(){} 这不是抽象方法,{}也是函数体 //普通方法,抽象类中可以有普通方法,但是只要有一个抽象方法就是抽象类 public void walk() { System.out.println("I am person. I can walk"); } } class Student extends Person { public void eat() { System.out.println("I am student. I eat 脑白金") ; } } public class AbstractTest { public static void main(String[] args) { Student student1 = new Student(); student1.eat();//输出为: I am student. I eat 脑白金 } }
abstract class Person { //抽象方法 public abstract void eat(); } class Student extends Person { public void eat() { System.out.println("I am student. I eat 脑白金") ; } } public class AbstractTest { public static void main(String[] args) { Person person = new Student(); person.eat();//输出为 I am student. I eat 脑白金 } }要点:
interface Speak { //定义了一个方法,说英语。表示一种能力,供子类实现 public abstract void speakEnglish(); } class Student implements Speak { //Student类实现了speakEnglish()方法,具有了说英语的能力 public void speakEnglish() { System.out.println("I am student.I can speak English"); } } public class InterfaceTest { public static void main(String[] args) { Student student = new Student(); student.speakEnglish(); } }
abstract class Person { //定义一个抽象方法,是人就会吃,所以放在父类是合适的。但是吃什么是不一定的,所以定义为抽象方法,由子类具体实现 public abstract void eat(); } interface Speak { //定义了一个方法,说英语。表示一种能力,供子类实现 public abstract void speakEnglish(); } interface Jump { //定义个方法,大跳。表示一种能力,供子类实现 public abstract void jump(); } class Student extends Person implements Speak,Jump { //Student类继承了Person抽象类,实现eat方法 public void eat() { System.out.println("I am student. I eat 脑白金"); } //Student类实现了speakEnglish()方法,具有了说英语的能力 public void speakEnglish() { System.out.println("I am student.I can speak English"); } //Student类实现了jump()方法。具有了大跳的能力 public void jump() { System.out.println("I am student.I can jump"); } } public class InterfaceTest { public static void main(String[] args) { Student student = new Student(); student.eat(); student.speakEnglish(); student.jump(); } }
interface Inter { //定义在接口中的常量必须初始化 public static final int MAX_VALUE = 100; public abstract void print(); } //实现了接口,就可以直接使用接口中定义的常量 class Myclass implements Inter { public void print() { System.out.println(MAX_VALUE); } } public class InterfaceTest2 { public static void main(String[] args) { Myclass myclass = new Myclass(); myclass.print();//输出结果为 100 } }