这是我参与11月更文挑战的第12天,活动详情查看:2021最后一次更文挑战
今天继续~
多态
- 多个同名方法因不同的实例而执行不同的功能,如父类下的三个子类拥有相同的方法,这三个子类的方法名字相同,功能却是可以变化的
class Father(){
void speak(){}
}
class Son extends Father(){
void speak(){
System.out.println("Son");
}
}
class Son1 extends Father(){
void speak(){
System.out.println("Son1");
}
}
class Son2 extends Father(){
void speak(){
System.out.println("Son2");
}
}
ps:父类中必须有该方法
虚函数
- 虚函数的存在就是为了多态,有些情况必须要加上虚函数才能实现多态
- java的普通函数(没有被声明static,native的关键字的)就是虚函数,因为它们能实现多态功能
抽象类
- 抽象类中不能有对象(不能new)
- 抽象类的方法中不能有方法体
- 抽象类的方法就是为了子类中的重写而准备的
封装
- 减少耦合度
- 隐藏信息,实现细节
public class Father(){
private String name;
private int age;
public int getAge(){
return age;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public void setName(String name){
this.name = name;
}
}
ps:用this来区分局部变量与全局变量
接口
- 接口是抽象方法的集合
- 一个接口必须实现其中的所有方法,否则就必须是抽象类
接口与类的相似点
- 一个接口可以有多个方法
接口与类的区别
- 接口不能实例化对象
- 接口没有构造方法
- 接口的所有方法必须是抽象方法
- 接口不能包含除了static和final的成员变量
- 接口支持多继承
接口特性
- 接口中的方法都会被定义为public abstract
- 接口中的变量会被定义为public static final
抽象类与接口的区别
- 接口的方法中不能存在方法体
- 接口中不能含有静态代码块和静态方法
- 一个类只能继承一个抽象类,但可以实现多个接口
接口的实现
interface Mouth{
public void eat();
public void drink();
}
public class Person implements Mouth{
public void eat(){
System.out.println("eat");
}
public void drink(){
System.out.println("drink");
}
}
ps:如果实现接口的类是抽象类,那么就没有必要实现接口的所有方法
接口的继承
public interface Father{
public void setName(String name);
public void setAge(int age);
}
public interface Son extends Father{
public void setChildrenName(String name);
public void setChilrenAge(int age);
}
- 在Father接口中拥有两个方法,在Son接口中拥有四个方法
接口的多继承
public interface Son extends Father1,Father2
标记接口
- 向类添加一个数据类型,标记接口没有方法,仅为类的多态做扩充
- 建立一个公共接口 今天就学到这里吧,晚安~