Java从入门到精通学习笔记—第八章 接口、继承与多态
笔记一: 父类中有静态函数时, 如果子类中又重载了这个静态函数。当用子类名调用该函数时,则仍然调用父类的函数。但是如果用子类的实例调用该函数时,则调用的是子类函数。实例如下:
代码块
public class Parent {
public static String getRole(){
return “parent”;
}
}
public class Child extends Parent {
public static String getRole(){
return “child”;
}
}
public static void main(String[] args){
System.out.println(Parent.getRole());//输出parent
System.out.println(Child.getRole());//输出parent
Parent parent=new Parent();
Parent child=new Child();
System.out.println(parent.getRole());//输出parent
System.out.println(child.getRole());//输出child
}
笔记二: 一个类可以同时继承,和实现接口。实例如下:
代码块
public interface iCalculate {
final double PI= 3.14159;
double getArea();
}
public class Shape {
protected double area;
protected double circumference;
}
public class Circle extends Shape implements iCalculate{
//实现构造函数
public Circle(float r){
this.r = r;
}
//实现接口函数getArea()
public double getArea(){
return PI*r*r;
}
//可以继承父类中的area成员
public void setArea(){
this.area = this.getArea();
}
}
public static void main(String[] args){
Circle myCircle = new Circle(3);
System.out.println(myCircle.getArea());//实例对象中调用接口方法
myCircle.setArea();
System.out.println(myCircle.area);//实例对象中调用父类成员
}