一、多态
-
一个对象可以根据发送对象的不同而采取不同的行为方式;
-
一个对象的实际类型是确定的,但指向对象的引用类型可以有很多(父类,有关系的类)
-
多态存在的条件
- 继承关系;
- 子类重写父类方法;
- 父类引用指向子类对象。
-
注意:多态是方法的多态,属性没有多态。
二、抽象
//abstract 抽象类:类 extends ; 单继承~
//接口可以多继承
public abstract class Action {
//约束~有人帮我们实现
//abstract 抽象方法,只有方法名,没有方法的实现
public abstract void doSomething();
//1. 不能new抽象类,只能靠子类实现它:约束!
//2. 抽象类中可以写普通的方法
//3. 抽象方法必须在抽象类中
//抽象的抽象:约束!
//思考题? 不能new,那么存在构造器吗? 存在。
//抽象类存在的意义。 将头部方法抽象出来,提升开发效率。
}
三、接口
-
普通类
-
抽象类
-
接口:只有规范。自己无法写方法专业的约束!约束和实现分离:面向接口编程
-
接口就是规范,定义的是一组规则。
-
接口的本质是契约,就如人间的法律,制定好大家都遵守。
-
OO的精髓,是对对象的抽象,最能体现这一点的就是接口。设计模式所研究的,实际上就是如何合理的去抽象。
-
关键字:interface。
-
作用
- 约束;
- 定义一些方法,让不同的人实现;
- 方法默认: public abstract;
- 常量默认:public static final;
- 接口不能被实例化,接口中没有构造方法;
- implements可以实现多个接口;
- 必须要重写接口中的方法。
四、N种内部类
public class Outer {
private int id;
//局部内部类
public void out(){
System.out.println("这是外部类的方法");
class outA{
}
}
//内部类
public class Inner{
public void in(){
System.out.println("这是内部类的方法");
}
//获得外部类的私有属性
public void getID(){
System.out.println(id);
}
}
}
//一个Java类中可以有多个class类,但只能有一个public class类
class A{
//匿名类
}
天将幕,雪乱舞,半梅花半飘柳絮......
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术