Java面向?qū)ο缶幊蹋ǚ庋b/繼承/多態(tài))實(shí)例解析
本文主要介紹了面向?qū)ο蟮娜筇卣鲗?shí)例解析,下面看看具體內(nèi)容。
封裝
封裝一個(gè)Teacher和Student類
package com.hz.test;
public class Teacher {
private String name;
private String majorDirection;
private String teachCourse;
private int teachAge;
public Teacher() {
super();
}
public Teacher(String name,String majorDirection,String teachCourse,int teachAge) {
this.name = name;
this.majorDirection = majorDirection;
this.teachCourse = teachCourse;
this.teachAge = teachAge;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMajorDirection() {
return majorDirection;
}
public void setMajorDirection(String majorDirection) {
this.majorDirection = majorDirection;
}
public String getTeachCourse() {
return teachCourse;
}
public void setTeachCourse(String teachCourse) {
this.teachCourse = teachCourse;
}
public int getTeachAge() {
return teachAge;
}
public void setTeachAge(int teachAge) {
this.teachAge = teachAge;
}
public String toString() {
return "姓名=" + getName() + ", 專業(yè)方向=" + getMajorDirection()
+ ", 所教課程=" + getTeachCourse() + ", 教齡=" + getTeachAge();
}
}
Student類
package com.hz.test;
import java.util.Arrays;
/**
* @author ztw
*
*/
public class Student {
private String name;
private int age;
private String[] courses;
private String interest;
public Student() {
super();
}
public Student(String name,int age,String[] courses,String interest) {
this.name = name;
this.age = age;
this.courses = courses;
this.interest = interest;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
if(age<0){
System.out.println("年齡不能為負(fù)值");
}else{
this.age = age;
}
}
public int getAge(){
return age;
}
public void setCourses(String[] courses){
this.courses = courses;
}
public String getCourses(){
return Arrays.toString(courses);
}
public void setInterest(String interest){
this.interest = interest;
}
public String getInterest(){
return interest;
}
public String toString() {
return "姓名=" + getName() + ", 年齡=" + getAge() + ", 課程=" + getCourses()
+ ", 興趣=" + getInterest();
}
}
測(cè)試類
package com.hz.test;
public class Test {
public static void main(String[] args) {
String arr[] = {"阿斯達(dá)","是的","大概","太誘惑"};
Student stu = new Student("張三",21,arr,"打球");
Teacher tea = new Teacher("王五","阿斯達(dá)","阿斯達(dá)",99);
System.out.println(stu);
System.out.println(tea);
}
}
輸出結(jié)果:
姓名=張三, 年齡=21, 課程=[阿斯達(dá), 是的, 大概, 太誘惑], 興趣=打球
姓名=王五, 專業(yè)方向=阿斯達(dá), 所教課程=阿斯達(dá), 教齡=99
繼承
定義Play,TaoistPriest,Master,Warrior
public class Play {
String main;
public Play(String main) {
this.main = main;
}
public void hitMonster() {
System.out.println(main+"打怪");
}
}
/**
* TaoistPriest:道士
* @author ztw
*
*/
public class TaoistPriest extends Play {
{
System.out.print("我是道士:");
}
public TaoistPriest(String main) {
super(main);
}
}
/**
* Master:法師
* @author ztw
*
*/
public class Master extends Play{
{
System.out.print("我是法師:");
}
public Master(String main) {
super(main);
}
}
/**
* Warrior:武士
* @author ztw
*
*/
public class Warrior extends Play{
{
System.out.print("我是武士:");
}
public Warrior(String main) {
super(main);
}
}
測(cè)試類
public class Test {
public static void main(String[] args) {
TaoistPriest tp = new TaoistPriest("靈魂火符");
tp.hitMonster();
Master m = new Master("雷電術(shù)");
m.hitMonster();
Warrior w = new Warrior("烈火術(shù)");
w.hitMonster();
}
}
輸出結(jié)果:
我是道士:靈魂火符打怪 我是法師:雷電術(shù)打怪 我是武士:烈火術(shù)打怪
多態(tài)
服務(wù)器,客戶端交互
LoginListener
public interface LoginListener {
public void succeed(String msg);
public void failed(String msg);
}
MyLoginListener
public class MyLoginListener implements LoginListener{
public void succeed(String msg) {
System.out.println(msg);
}
public void failed(String msg) {
System.out.println(msg);
}
}
Server
public class Server {
public void login(String userName,String password,LoginListener listener) {
System.out.print("loading");
for (int i = 0; i < 10; i++) {
try {
Thread.sleep(100*i);
System.out.print(".");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(userName.equals("zhangsan") && password.equals("123")){
if(listener!=null){
listener.succeed("登錄成功");
}
}else{
if(listener!=null){
listener.succeed("登錄失敗");
}
}
}
}
測(cè)試類
public class LoginTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("請(qǐng)輸入用戶名:");
String userName = sc.next();
System.out.println("請(qǐng)輸入用戶密碼:");
String password = sc.next();
Server server = new Server();
server.login(userName, password, new MyLoginListener());
}
}
輸出結(jié)果
請(qǐng)輸入用戶名: zhangsan 請(qǐng)輸入用戶密碼: 123 loading……….登錄成功
總結(jié)
以上就是本文關(guān)于Java面向?qū)ο缶幊蹋ǚ庋b,繼承,多態(tài))實(shí)例解析的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:解析Java編程之Synchronized鎖住的對(duì)象、Java語(yǔ)言面向?qū)ο缶幊趟枷胫惻c對(duì)象實(shí)例詳解等,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
相關(guān)文章
Logback MDCAdapter日志跟蹤及自定義效果源碼解讀
這篇文章主要為大家介紹了Logback MDCAdapter日志跟蹤及自定義效果源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
SpringMVC 中配置 Swagger 插件的教程(分享)
下面小編就為大家分享一篇SpringMVC 中配置 Swagger 插件的教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
使用Springboot對(duì)配置文件中的敏感信息加密
這篇文章主要介紹了使用Springboot對(duì)配置文件中的敏感信息加密方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
spring boot使用sonarqube來(lái)檢查技術(shù)債務(wù)
今天小編就為大家分享一篇關(guān)于spring boot使用sonarqube來(lái)檢查技術(shù)債務(wù),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12
Mybatis詳細(xì)對(duì)比一級(jí)緩存與二級(jí)緩存
MyBatis 包含一個(gè)非常強(qiáng)大的查詢緩存特性,它可以非常方便地配置和定制,緩存可以極大的提升查詢效率。MyBatis中默認(rèn)定義了兩級(jí)緩存,分別是一級(jí)緩存和二級(jí)緩存2022-10-10

