接口(重点)
-
interface:为了满足 java只满足单继承的情况,为了实现多继承的效果,扩展了类的功能,弥补了Java的继承缺点
-
定义一个接口:
修饰符 interface 类名{}
默认的属性是被final static private 修饰的
abstract:抽象
抽象方法的定义:默认修饰:public abstract
方法返回类型 方法名();
-
使用:
接口的继承:public class 类名 implements 接口名{}
对方法进行重写
@Overide
重写的方法
public class Person { public void eating(){ System.out.println("人正在吃饭"); } public void walking(){ System.out.println("人正在走路"); } public void sleeping(){ System.out.println("人正在睡觉"); } }
public interface TeacherImpl { //隐藏public abstract void byCar(); void working(); }
public interface TeacherImpl2 { void buyBook(); void exam(); }
public class Teacher extends Person implements TeacherImpl,TeacherImpl2{ public void onClass(){ System.out.println("当前老师正在上课"); } public void teaching(){ System.out.println("老师正在做教学"); } @Override public void eating() { System.out.println("老师正在吃饭"); } @Override public void walking() { System.out.println("老师正在走路"); } @Override public void sleeping() { System.out.println("老师正在睡觉"); } @Override public void byCar() { System.out.println("老师正在开车"); } @Override public void working() { System.out.println("老师正在工作"); } @Override public void buyBook() { System.out.println("老师有一家书店"); } @Override public void exam() { System.out.println("老师也需要考试"); }
public class Test { public static void main(String[] args) { Teacher t1=new Teacher(); t1.onClass(); t1.byCar(); t1.eating(); t1.sleeping(); t1.teaching(); t1.walking(); t1.working(); t1.buyBook(); t1.exam(); }
抽象类:
-
抽象类不能别直接实例化
定义:public abstract class Shape{}
-
写抽象方法
定义:public abstract void getArea();
-
public abstract class Shape { public abstract void area(); public abstract void lon(); }
public class Triangle extends Shape{ @Override public void area() { System.out.println("这是三角形的面积"); } @Override public void lon() { System.out.println("这是三角形的长度"); } }
public class rectangle extends Shape{ @Override public void area() { System.out.println("这是长方形的面积"); } @Override public void lon() { System.out.println("这是长方形的周长"); } }
public class Test2 { public static void main(String[] args) { rectangle re=new rectangle(); re.area(); re.lon(); Triangle triangle=new Triangle(); triangle.area(); triangle.lon(); } }
-
-