Day07
Day07
面向对象
方法重写
A.java
package com.susu2568.oop.Demo02;
public class A extends B{
//重写----alt+ins
@Override//注解---有功能的注释
public void test() {
System.out.println("A=>test()");
}
}
B.java
package com.susu2568.oop.Demo02;
public class B {
public void test(){
System.out.println("B=>test()");
}
}
Application.java
package com.susu2568.oop.Demo02;
public class Application {
public static void main(String[] args) {
//方法重写
A a = new A();
a.test();
//父类的引用指向了子类
B b = new A();
b.test();
}
}
输出:
A=>test()
A=>test()
类型转换
package com.susu2568.oop;
import com.susu2568.oop.Demo03.Person;
import com.susu2568.oop.Demo03.Worker;
public class Application {
public static void main(String[] args) {
//一个方法的实际类型是确定的
//可以指向的引用类型是不确定的
// Worker s1 = new Worker();
// Person s2 = new Worker();
Object object = new Worker();
System.out.println(object instanceof Object);
System.out.println(object instanceof Person);
System.out.println(object instanceof Worker);
//instanceof---类型转换
//System.out.println(X instanceof Y);--- X Y 是否存在父子关系
//方法类型的转换----父----->子 直接转换
// 父<-----子 强制转换 可能会丢失一些方法
}
}
抽象类
package com.susu2568.oop.Demo03;
//abstract 抽象类 类: extends 只能单继承 接口可以多继承
public abstract class D {
//不能new 抽象类 只能靠子类去实现
//抽象类与抽象方法相对应
}
多态
接口
userService.java
package com.susu2568.oop.Demo04;
//接口
//接口中所有定义为抽象的
public interface userService {
void add();
void delete();
void update();
void query();
}
userServiceImpl.java
package com.susu2568.oop.Demo04;
public class userServiceImpl implements userService{
@Override
public void add() {
}
@Override
public void delete() {
}
@Override
public void update() {
}
@Override
public void query() {
}
}

浙公网安备 33010602011771号