目录
㈠抽象类
1.抽象类
-
如果一个类不能表示一个准确的对象(eg:蔬菜+动物)就把他定义为抽象类;
-
抽象类就是为了被继承!
-
需要通过abstract修饰类;
2. 抽象方法
❶同样需要用abstract修饰
❷此时如果不实现这个方法也就是不输入{sout}就会报错;除非加上abstract:
❸抽象方法在子类要重写,不然子类就要 + abstract(抽象方法只包含在抽象类当中的)
☯浅学一招:
左边:实例化Dog对象,默认这个够狗都叫小太阳
㈡接口
1.接口的概念
概念:接口就是公共的行为标准,我们在实现时只要符合规范标准,就可以通用,在java中,接口可以看成是:多个类的公共规范,是一种引用数据类型。
👓如果我们要用这个标准,我们就要去实现这个接口用implements关键字实现这个接口
👓要实现接口那么得先定义接口:使用initerface关键字定义一个接口,接口一般用大写的I开头
eg:
2.接口当中的成员变量
👒 接口当中的成员默认都是public static final的,它是静态常量;看代码示例:
3.接口当中的成员方法
🎯接口当中的方法,不写也是默认为public abstract 的
🎯接口当中的方法不能有具体的实现;
🎯但是从JDK 8 开始,可以写一个default修饰的方法
🎯接口当中不需要有构造方法了,因为默认是static final(常量)不需要构造方法初始化了
🎯接口中可以有static修饰的方法
eg:
4.接口中的抽象方法
🎀当Pig类实现这个接口时,需要重写接口中的抽象方法;看示例:
5.为什么有接口?
🎀解决java不能多继承的问题
package demo4;
/**
* @Author: 黑木~
* @DATE: 2022/11/16 16:06
*/
abstract class Animal {
public String name;
public Animal(String name) {
this.name = name;
}
}
interface IRunning{
void run();
}
interface ISwimming{
void swim();
}
interface IEat{
void eat();
}
class Dog extends Animal implements IRunning,ISwimming{
public Dog(String name) {
super(name);
}
@Override
public void run() {
System.out.println(name+"在跑!!!");
}
@Override
public void swim() {
System.out.println(name+"在游泳!!!");
}
}
public class TestDemo1 {
public static void main(String[] args) {
Dog dog = new Dog("博哥");
dog.run();
dog.swim();
}
}
🎹小练习:用接口画图形<点我!!!>