一,抽象类
关键字:abstract
1.抽象类只有方法名,没有方法体。
2.抽象类不能创建对象,只能作为一种特殊父类让子类继承。
3.一个类继承抽象类必须继承抽象类的全部方法,否则这个类也要被定义为抽象类。
4.抽象类可以不写抽象方法,但有抽象方法的一定是抽象类。
代码示例:
package com.java;
public class TEst01 {
public static void main(String[] args) {
Animal cat=new Cat();
cat.setName("tom");
cat.cry();
Animal dog=new Dog();
dog.setName("sam");
dog.cry();
}
}
public abstract class Animal {
private String name;
public abstract void cry(); /不能有方法体!
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
}
public class Cat extends Animal{
@Override
public void cry() {
System.out.println("miao");
}
}
public class Dog extends Animal{
@Override
public void cry() {
System.out.println("wang");
}
}
二,接口
关键字:interface
实现类关键字:implements
使用结构:
public interface 接口名{
//成员变量(默认为常量)
//成员方法(默认为抽象方法)
}
修饰符 class 实现类名 implements 接口1,接口2,接口3{
}
代码示例:
package com.java;
public class Test02 {
public static void main(String[] args) {
A1 a=new A1();
a.setName("sam");
a.drive();
a.study();
}
}
public class A1 implements B1,C1{
private String name;
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
@Override
public void study() {
System.out.println("studying");
}
@Override
public void drive() {
System.out.println("driving");
}
}
public interface B1 {
void drive();
}
public interface C1 {
void study();
}