intro
语言最重要的就是语言的多态了。多态可以用“三个定义和两个方法”来总结。三个定义分别是父类定义子类构建、接口定义实现类构建和抽象类定义实体类构建(统称继承),而两个方法分别是方法重载和方法重写。
父类定义子类构建
class Shape{
public void draw(){
}
}
public class Rectangle extends Shape {
public static void main(String[] args) {
Rectangle Rec = new Rectangle();
Rec.draw();
}
}
在子类中用extends来继承父类,类似于python中的:
接口定义实现类构造
接口是一个规范。它定义了类的基本要求,当你的类从接口继承时,就能保证类保证了接口的规范。
interface Shape{
void draw();
}
public class Rectangle implements Shape{
public void draw(){
}
public static void main(String args[]) {
Rectangle rec = new Rectangle();
rec.draw();
}
}
和父类定义子类构造不同,接口只能定义原型,具体实现或者称为代码编写还得在子类中写。所以这里的draw在Rectangle中实现。注意关键字是implements,加个s暗示接口可以多继承?拜托你是动词好吧。
抽象类定义实体类构造
抽象类可以包含抽象函数,抽象函数只能在子类中实现。
public abstract class Shape{
abstract void draw();
}
public class Rectangle extends Shape{
void draw(){
System.out.println("i am a Rectangle");
}
public static void main(String args[]) {
Rectangle rec = new Rectangle();
rec.draw();
}
}
方法重载
这个简单,就是函数类型要一致,参数可以不一样。
方法重写
在接口、抽象类中,已经用到了方法重新的理念。
能看到这篇文章的同学大多都是Java刚入门的,笔者也是哦,既然看到这里,就开打Eclpise敲一下吧,这个世界有没有捷径的。
Reference
[1] https://baijiahao.baidu.com/s?id=1643890471744696327&wfr=spider&for=pc