package test;
成都創(chuàng)新互聯(lián)從2013年創(chuàng)立,先為洱源等服務建站,洱源等地企業(yè),進行企業(yè)商務咨詢服務。為洱源企業(yè)網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。
/**
*
* @author JinnL
*父類抽象類
*/
public abstract class Car {
//轉彎
abstract void turn();
//啟動
abstract void start();
void what(){
System.out.println("this is "+this.getClass().getSimpleName());
}
public static void main(String[] args) {
/**
* 方法入口
*/
Car[] cars ={new Bicycle(),new Automobile(),new GasAutomobile(),new DieselAutomobile()};
for (Car car : cars) {
car.start();
}
}
}
class Bicycle extends Car{
@Override
void turn() {
System.out.println("this is "+this.getClass().getSimpleName());
}
@Override
void start() {
System.out.println("this is "+this.getClass().getSimpleName());
}
void what(){
}
}
class Automobile extends Car{
@Override
void turn() {
System.out.println("this is "+this.getClass().getSimpleName());
}
@Override
void start() {
System.out.println("this is "+this.getClass().getSimpleName());
}
}
class GasAutomobile extends Automobile{
//重寫start turn
@Override
void turn() {
System.out.println("this is "+this.getClass().getSimpleName());
}
@Override
void start() {
System.out.println("this is "+this.getClass().getSimpleName());
}
}
class DieselAutomobile extends Automobile{
@Override
void start() {
System.out.println("this is "+this.getClass().getSimpleName());
}
void what(){
System.out.println("this is "+this.getClass().getSimpleName());
}
}
//抽象的形狀類
abstract class Shape{
abstract double getArea(); //抽象的求面積方法
}
//矩形類
class Rectangle extends Shape{
protected double width;
protected double height;
public Rectangle(double width, double height){
this.width = width;
this.height = height;
}
@Override
double getArea() { //實現父類的方法
return this.width * this.height;
}
}
//橢圓類
class Ellipse extends Shape{
protected double a;
protected double b;
public Ellipse(double a, double b){
this.a = a;
this.b = b;
}
@Override
double getArea() {
return Math.PI * this.a * this.b;
}
}
public class TestAbstract {
public static void main(String[] args) {
Shape s;
s = new Rectangle(3, 4);
System.out.println("矩形的面積 : " + s.getArea());
s = new Ellipse(4, 3);
System.out.println("橢圓的面積 : " + s.getArea());
}
}
下面是采用抽象類方式設計一個面向學生的Java課程學分管理程序的示例代碼:
// 定義抽象類
Student
public abstract class Student {
// 學生姓名
protected String name;
// 學生學號
protected String studentNumber;
// 學生已修課程學分總和
protected double totalCredits;
// 構造方法
public Student(String name, String studentNumber) {
this.name = name;
this.studentNumber = studentNumber;
this.totalCredits = 0;
}
// 抽象方法,用于計算學生的當前學分績點
public abstract double calculateGPA();
// 普通方法,用于增加學生的已修課程學分
public void addCredits(double credits) {
this.totalCredits += credits;
}
// 普通方法,用于獲取學生的姓名
public String getName() {
return this.name;
}
// 普通方法,用于獲取學生的學號
public String getStudentNumber() {
return this.studentNumber;
}
// 普通方法,用于獲取學生的已修課程學分總和
public double getTotalCredits() {
return this.totalCredits;
}
}
下面是采用接口方式設計一個面向學生的Java課程學分管理程序的示例代碼:
// 定義接口Student
public interface Student {
// 學生姓名
String name = "";
// 學生學號
String studentNumber = "";
// 學生已修課程學分總和
double totalCredits = 0;
// 抽象方法,用于計算學生的當前學分績點
double calculateGPA();
// 抽象方法,用于增加學生的已修課程學分
void addCredits(double credits);
//抽象方法,用于獲取學生的姓名
String getName();
// 抽象方法,用于獲取學生的學號
String getStudentNumber();
// 抽象方法,用于獲取學生的已修課程學分總和
double getTotalCredits();
}
在上面的代碼中,我們使用了抽象類和接口兩種方式來設計學生的Java課程學分管理程序。抽象類的方式可以在類中包含普通的成員變量和方法,而接口的方式則只能包含抽象方法。根據需要,可以選擇使用抽象類或接口來設計學生的Java課程學分管理程序。
希望這對你有幫助!望采納!