//inherit继承
//面向对象三大特性
//封装,继承,多态
//java是单继承extends
//抽象类
//抽象类不能用来创建对象
//抽象类(父类专用)作为其他子类的模板,包含抽象方法的类一定要为抽象类
//抽象方法中只声明方法结构没有方法体,子类在继承时具体实现这个方法。
//抽象方法用于子类全部重写父类方法的场合
继承
package com.lanou;
public class Person {
private String name;
private String gender;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void eat(){
System.out.println("eat");
}
public void drink(){
System.out.println("eat");
}
public void sleep(){
System.out.println("sleep");
}
}
package com.lanou;
//继承
public class Student extends Person {
private String name;
private String gender;
private int age;
private int sid;
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public void study(){
System.out.println("study");
}
//重写父类
//注解
@Override
public void sleep() {
super.sleep();//调用父类方法
System.out.println("上课睡觉");
}
}
abstract
package homework1;
//抽象类不能创建对象
public abstract class Shape {
public abstract double circumstance();
public abstract double area();
}
package homework1;
public class Circle extends Shape {
private double radiu;
public double getRadiu() {
return radiu;
}
public void setRadiu(double radiu) {
this.radiu = radiu;
}
//构造方法
public Circle(double radiu) {
this.radiu = radiu;
}
//toString
@Override
public String toString() {
return "半径为:" +this.getRadiu()+
"的圆";
}
//抽象类的子类强制全部重写父类方法
@Override
public double circumstance() {
double C=this.getRadiu()*2*Math.PI;
return C;
}
@Override
public double area() {
double S=this.getRadiu()*this.getRadiu()*Math.PI;
return S;
}
}