昆山网站设计,wordpress侧边,稿定设计官方免费下载,如何宣传推广自己的店铺接口和抽象类的区别
关键字abstractinterface
实例化不能直接实例化不能直接实例化
方法可以有抽象和具体方法只能有抽象方法#xff08;Java 8 支持默认方法#xff09;
变量可以有普通变量只能有常量 (public static final)
继承单继承多继承
构造函数可以定义不允许…接口和抽象类的区别
关键字abstractinterface
实例化不能直接实例化不能直接实例化
方法可以有抽象和具体方法只能有抽象方法Java 8 支持默认方法
变量可以有普通变量只能有常量 (public static final)
继承单继承多继承
构造函数可以定义不允许定义
使用场景表示实体的共有特征定义行为的规范
抽象类定义共同的特征Cat和Dog都具有Animal的行为所以可以定义一个Animal抽象类包含动物的共同行为比如以下代码
// 抽象类 Animal
abstract class Animal {String name;Animal(String name) { // 构造函数this.name name;}// 抽象方法子类必须实现abstract void makeSound();// 具体方法所有子类共享void sleep() {System.out.println(name is sleeping.);}
}// 子类狗
class Dog extends Animal {Dog(String name) {super(name);}Overridevoid makeSound() {System.out.println(name says: Woof!);}
}// 子类猫
class Cat extends Animal {Cat(String name) {super(name);}Overridevoid makeSound() {System.out.println(name says: Meow!);}
}// 测试类
public class Main {public static void main(String[] args) {Dog dog new Dog(Buddy);Cat cat new Cat(Whiskers);dog.makeSound();dog.sleep();cat.makeSound();cat.sleep();}
}接口定义某种行为规范动物的某个行为作为一个接口在实际业务中某个功能服务会作为一个接口代码示例
// 接口定义跑步行为
interface CanRun {void run();
}// 接口定义发出声音的行为
interface CanMakeSound {void makeSound();
}// 狗类实现跑步和发声行为
class Dog implements CanRun, CanMakeSound {String name;Dog(String name) {this.name name;}Overridepublic void run() {System.out.println(name is running!);}Overridepublic void makeSound() {System.out.println(name says: Woof!);}
}// 猫类实现跑步和发声行为
class Cat implements CanRun, CanMakeSound {String name;Cat(String name) {this.name name;}Overridepublic void run() {System.out.println(name is running!);}Overridepublic void makeSound() {System.out.println(name says: Meow!);}
}// 测试类
public class Main {public static void main(String[] args) {Dog dog new Dog(Buddy);Cat cat new Cat(Whiskers);dog.run();dog.makeSound();cat.run();cat.makeSound();}
}