学习资料
b站狂神说:https://www.bilibili.com/video/BV12J41137hu
抽象类
abstract 修饰的类,
// 不能被实例化,new 抽象类() // 抽象类中可以有普通方法 // 继承抽象类的普通类必须实现抽象类的抽象方法
package com.zy7y.oop;
/**
* @ProjectName: JavaSE
* @PackageName: com.zy7y.oop
* @Author: zy7y
* @Date: 2020/8/15 下午4:08
* @Description: 抽象类
*/
public abstract class AbstractClass {
// 抽象类:AbstractClass
// 抽象方法, 只有方法名字
public abstract void doSomething();
public void hello(){
System.out.println("hello");
}
// 不能被实例化,new 抽象类()
// 抽象类中可以有普通方法
// 抽象方法必须存在抽象类中
// 继承抽象类的普通类必须实现抽象类的抽象方法
}
接口
接口不能被实例化~,接口中没有构造方法
接口中的常量默认使用public static final 修饰
接口中的方法默认使用public abstract修饰
implements用来实现接口,可实现多个接口,实现接口必须重写接口中的抽象方法
interface关键字定义接口
package com.zy7y.oop;
/**
* @ProjectName: JavaSE
* @PackageName: com.zy7y.oop
* @Author: zy7y
* @Date: 2020/8/15 下午4:15
* @Description: 接口
*/
public interface UserService {
// 接口只能定义方法,不能实现方法,而且默认都是使用 public abstract 实现的
public abstract void add(String name);
void delete(String name);
void select(String name);
void update(String name);
}
implements实现接口
package com.zy7y.oop;
/**
* @ProjectName: JavaSE
* @PackageName: com.zy7y.oop
* @Author: zy7y
* @Date: 2020/8/15 下午4:20
* @Description:
*/
// 使用implements 来实现接口,可多实现UserService,HeroService
// 实现接口必须重写接口中的抽象方法
public class demo implements UserService{
@Override
public void add(String name) {
}
@Override
public void delete(String name) {
}
@Override
public void select(String name) {
}
@Override
public void update(String name) {
}
}
内部(套娃)类
成员内部类
package com.zy7y.oop;
/**
* @ProjectName: JavaSE
* @PackageName: com.zy7y.oop
* @Author: zy7y
* @Date: 2020/8/14 下午11:58
* @Description: 启动方法
*/
public class Application {
public static void main(String[] args) {
// 外部类
InnerClass innerClass = new InnerClass();
// 实例化内部类
InnerClass.Inner inner = innerClass.new Inner();
inner.in();
inner.getId();
}
}
package com.zy7y.oop;
/**
* @ProjectName: JavaSE
* @PackageName: com.zy7y.oop
* @Author: zy7y
* @Date: 2020/8/15 下午4:31
* @Description: 内部类
*/
public class InnerClass {
// 外部类的属性
private int id;
public void out(){
System.out.println("外部类的方法");
}
// 成员内部类
public class Inner{
public void in(){
System.out.println("内部类的方法");
}
// 获得外部类的属性
public void getId(){
System.out.println(id);
}
}
}